Управляемый код
Эта статья нуждается в дополнительных цитатах для проверки . ( апрель 2019 г. ) |
Управляемый код — это код компьютерной программы, который требует и будет выполняться только под управлением Common Language Infrastructure (CLI); Система виртуального исполнения (VES); виртуальная машина , например .NET , CoreFX или .NET Framework ; Общеязыковая среда выполнения (CLR); или Моно . Этот термин был придуман Microsoft .
Управляемый код — это результат компиляции исходного кода, высокого уровня написанного на одном из более чем двадцати языков программирования , включая C# , J# и Visual Basic .NET .
Терминология
[ редактировать ]Истинное и четкое различие между управляемым и неуправляемым кодом широко распространено и актуально только при разработке приложений, взаимодействующих с реализациями CLR. Поскольку многие [ который? ] старые языки программирования были перенесены в CLR, дифференциация необходима для идентификации управляемого кода, особенно в смешанной среде. В этом контексте код, который не зависит от CLR, называется «неуправляемым».
Источник путаницы возник, когда Microsoft начала соединять .NET Framework с C++ и выбирать, как назвать управляемые расширения для 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]
Преимущества использования управляемого кода включают удобство программиста (за счет повышения уровня абстракции, создания моделей меньшего размера) и расширенные гарантии безопасности в зависимости от платформы (включая реализацию виртуальной машины). Существует множество исторических примеров запуска кода на виртуальных машинах, например, язык UCSD Pascal с использованием p-code и операционная система Inferno от Bell Labs с использованием виртуальной машины Dis . Java популяризировала этот подход благодаря своему байт-коду, исполняемому виртуальной машиной Java .
Google также упоминает, что Java и Kotlin являются управляемым кодом в своих Android NDK JNI . документах [3] [4]
Ссылки
[ редактировать ]- ^ Страуструп, Бьярне (29 июня 2009 г.). «Часто задаваемые вопросы Бьярна Страуструпа: что вы думаете о C++/CLI?» . Проверено 29 июня 2009 г.
- ^ Грегори, Кейт (28 апреля 2003 г.). «Управляемый, неуправляемый, собственный: что это за код?» . Проверено 22 апреля 2009 г.
- ^ «Советы по JNI | Android NDK» . Android-разработчики . Проверено 21 июня 2020 г.
- ^ «Начало работы с C++ и собственными действиями Android» .