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

Управля́емый код (англ. 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 и другие.

Использование

Среда разработки Microsoft C++ позволяет создавать и управляемый код, и скомпилированный, который запускается на платформах Windows с помощью библиотек среды выполнения C++.

Преимущества использования управляемого кода — удобство программиста (более высокий уровень абстракции), гарантии безопасности, платформная независимость. К недостаткам можно отнести долгое время загрузки и увеличение использования системных ресурсов.

См. также

Примечания

  1. Брэд Абрамс из Microsoft дает определение управляемому коду (англ.) (9 января 2004). Дата обращения: 8 июля 2010. Архивировано 27 августа 2011 года.
  2. Перевод статьи Брэда Абрамса на форуме RSDN (9 февраля 2009). Дата обращения: 8 июля 2010. Архивировано 27 августа 2011 года.
  3. msdn Архивная копия от 18 октября 2016 на Wayback Machine What Is Managed Code?
  4. Архивная копия от 18 октября 2016 на Wayback Machine Languages, tools and frameworks
  5. Programming Languages Архивная копия от 18 октября 2016 на Wayback Machine Visual Studio .NET
  6. mono-project Архивная копия от 30 октября 2014 на Wayback Machine Mono-compatible compilers

Литература

  • Кристиан Нейгел, Билл Ивьен, Джей Глинн, Карли Уотсон, Морган Скиннер. C# 2005 и платформа .NET 3.0 для профессионалов = Professional C# 2005 with .NET 3.0. М.: «Диалектика», 2007. — ISBN 978-5-8459-1317-3.