stringtranslate.com

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

Управляемый код — это код компьютерной программы, который требует и будет выполняться только под управлением Common Language Infrastructure (CLI); Virtual Execution System (VES); виртуальной машины , например .NET , CoreFX или .NET Framework ; Common Language Runtime (CLR); или Mono . Термин был придуман корпорацией Microsoft .

Управляемый код — это вывод компилятора исходного кода, написанного на одном из более чем двадцати языков программирования высокого уровня , включая C# , J# и Visual Basic .NET .

Терминология

Истинное и тонкое различие между управляемым и неуправляемым кодом распространено и имеет значение только при разработке приложений, взаимодействующих с реализациями CLR. Поскольку многие [ какие? ] старые языки программирования были перенесены в CLR, необходимо различие для идентификации управляемого кода, особенно в смешанной конфигурации. В этом контексте код, который не полагается на CLR, называется «неуправляемым».

Источник путаницы возник, когда Microsoft начала связывать .NET Framework с C++ и выбирать, как назвать Managed Extensions для C++ . Сначала он был назван Managed C++, а затем переименован в C++/CLI . Создатель языка программирования C++ и член комитета по стандартам C++ Бьярне Страуструп даже прокомментировал эту проблему: «В сложном и спорном вопросе о том, как называть привязку/расширения CLI к C++, я предпочитаю C++/CLI как сокращение для „Расширения CLI к ISO C++“. Сохранение C++ как части названия напоминает людям, что является базовым языком, и поможет сохранить C++ надлежащим подмножеством C++ с расширениями C++/CLI». [1]

Использует

Компилятор Microsoft Visual C++ может создавать как управляемый код, работающий в среде CLR, так и неуправляемые двоичные файлы, работающие непосредственно в Windows. [2]

Преимущества использования управляемого кода включают удобство программиста (за счет повышения уровня абстракции, создания меньших моделей) и улучшенные гарантии безопасности, в зависимости от платформы (включая реализацию VM). Существует множество исторических примеров кода, работающего на виртуальных машинах, таких как язык UCSD Pascal, использующий p-code , и операционная система Inferno от Bell Labs, использующая виртуальную машину Dis . Java популяризировала этот подход с помощью своего байт-кода, выполняемого виртуальной машиной Java .

Google также упоминает, что Java и Kotlin являются управляемым кодом в своих документах Android NDK JNI [3] [4]

Ссылки

  1. ^ Страуструп, Бьярне (29.06.2009). "Часто задаваемые вопросы Бьярне Страуструпа: что вы думаете о C++/CLI?" . Получено 29.06.2009 .
  2. Грегори, Кейт (28.04.2003). «Управляемый, неуправляемый, собственный: какой это код?» . Получено 22.04.2009 .
  3. ^ "JNI tips | Android NDK". Разработчики Android . Получено 2020-06-21 .
  4. ^ «Начало работы с C++ и собственными действиями Android».

Внешние ссылки