Управляемый код


Управля́емый код (англ. managed code) — термин, введённый фирмой Microsoft, для обозначения кода программы, исполняемой под «управлением» виртуальной машины .NET[1][2][3] — Common Language Runtime или Mono. При этом машинный код называется неуправля́емым кодом (англ. unmanaged code).

Слово «управляемый» (англ. managed) здесь относится к методу обмена информацией между программой и исполняющей средой. Оно означает, что в любой точке исполнения управляющая среда может приостановить исполнение и получить информацию, специфичную для текущего состояния. Необходимая для этого информация представлена в управляемом коде на языке Intermediate Language и в связанных с этим кодом метаданных.

С формальной точки зрения управляемым кодом является любой программный код, исполняемый в среде отладчика.

Управляемый код может быть написан на одном из языков программирования, которые поддерживаются .NET или MONO.

Основные языки, поддерживаемые .NET[4][5]: C#, C++/CLI, Microsoft Visual Basic, JavaScript, а также F# и многие другие.

Проект Mono поддерживает[6] C#, F#, Java, Scala, Boo, Nemerle, Visual Basic.NET, Python, JavaScript, Оберон, PHP, Object Pascal, Lua, Cobra, Synergy-DBL, а также #Smalltalk, DotLisp и другие.