Общая языковая инфраструктура
ИСО/МЭК 23271:2012(Е) | |
Аббревиатура | интерфейс командной строки |
---|---|
Статус | Опубликовано |
Год начался | 2000 |
Впервые опубликовано | 2001 год | (Экма) и 2003 год (ISO/IEC)
Последняя версия | Шестое издание июнь 2012 г |
Организация | Разработчики: Microsoft , Hewlett-Packard , Intel и другие. Стандартизировано: Ecma , ISO / IEC. |
комитет | ИСО/МЭК ОТК 1/ПК 22 |
Домен | Общий язык ( кроссплатформенный ) |
Лицензия | РЭНД |
Веб-сайт | ЭКМА-335 , ИСО/МЭК 23271 |
Common Language Infrastructure ( CLI ) — это открытая спецификация и технический стандарт, первоначально разработанный Microsoft и стандартизированный ISO / IEC ( ISO/IEC 23271 ) и Ecma International ( ECMA 335 ). [ 1 ] [ 2 ] который описывает исполняемый код и среду выполнения, которая позволяет несколько языков высокого уровня использовать на разных компьютерных платформах без переписывания для конкретных архитектур. Это означает, что он не зависит от платформы. .NET Framework , .NET и Mono являются реализациями CLI. Формат метаданных также используется для указания определений API, предоставляемых средой выполнения Windows . [ 3 ] [ 4 ]
Обзор
[ редактировать ]
Помимо прочего, спецификация CLI описывает следующие пять аспектов:
- Система общего типа (CTS)
- Набор типов данных и операций, общих для всех CTS-совместимых языков программирования .
- Метаданные
- Информация о структуре программы не зависит от языка , поэтому на нее можно ссылаться между языками и инструментами, что упрощает работу с кодом, написанным на языке, который разработчик не использует.
- Спецификация общего языка (CLS)
- CLS, подмножество CTS, представляет собой правила, которым должны соответствовать компоненты, разработанные с использованием/для поддерживаемых языков.
- Они применяются к потребителям (разработчикам, которые программно обращаются к компоненту, совместимому с CLS), платформам (разработчикам, которые используют компилятор языка для создания CLS-совместимых библиотек) и расширителям (разработчикам, которые создают такой инструмент, как компилятор языка). или анализатор кода, создающий CLS-совместимые компоненты).
- Система виртуального исполнения (VES)
- VES загружает и выполняет CLI-совместимые программы, используя метаданные для объединения отдельно сгенерированных фрагментов кода во время выполнения.
- Все совместимые языки компилируются в Common Intermediate Language (CIL), который является промежуточным языком , абстрагированным от аппаратного обеспечения платформы. Когда код будет выполнен, VES для конкретной платформы скомпилирует CIL на машинный язык в соответствии с конкретным оборудованием и операционной системой.
- В стандарте CLI, первоначально разработанном Microsoft, VES реализуется с помощью Common Language Runtime (CLR).
- Стандартные библиотеки
- Набор библиотек, обеспечивающих множество общих функций, таких как чтение и запись файлов. Их ядром является библиотека базовых классов (BCL).
Стандартизация и лицензирование
[ редактировать ]В августе 2000 года Microsoft , Hewlett-Packard , Intel и другие работали над стандартизацией CLI. К декабрю 2001 года он был ратифицирован Ecma , а в апреле 2003 года последовала стандартизация ISO / IEC .
Microsoft и ее партнеры владеют патентами на CLI. Ecma и ISO/IEC требуют, чтобы все патенты, необходимые для реализации, были доступны на « разумных и недискриминационных условиях (RAND) ». Лицензирование RAND обычно требует выплаты роялти, что может стать причиной для беспокойства в отношении Mono . По состоянию на январь 2013 года ни Microsoft, ни ее партнеры не выявили каких-либо патентов, необходимых для реализации CLI, подпадающих под условия RAND.
По состоянию на июль 2009 г. [ 5 ] Microsoft добавила C# и CLI в список спецификаций, обещание сообщества Microsoft . к которым применяется [ 6 ] поэтому любой может безопасно внедрить определенные редакции стандартов, не опасаясь патентного иска со стороны Microsoft. Для реализации стандарта CLI требуется соответствие одному из поддерживаемых и определенных профилей стандарта, минимальным из которых является профиль ядра. Профиль ядра на самом деле представляет собой очень небольшой набор поддерживаемых типов по сравнению с хорошо известной базовой библиотекой установок .NET по умолчанию. Однако пункт о соответствии CLI позволяет расширять поддерживаемый профиль путем добавления к классам новых методов и типов, а также их производных от новых пространств имен. Но он не позволяет добавлять новых членов в интерфейсы. Это означает, что функции CLI можно использовать и расширять до тех пор, пока реализация соответствующего профиля не меняет поведение программы, предназначенной для запуска в этом профиле, допуская при этом неопределенное поведение программ, написанных специально для этой реализации.
В 2012 году Ecma и ISO/IEC опубликовали новую редакцию стандарта CLI. [ 1 ] [ 2 ]
Реализации
[ редактировать ]- .NET Framework — это оригинальная коммерческая реализация CLI от Microsoft. Он поддерживает только Windows. В ноябре 2020 года он был заменен .NET.
- .NET , ранее известный как .NET Core, — это бесплатный многоплатформенный преемник .NET Framework с открытым исходным кодом, выпущенный по лицензии MIT.
- .NET Compact Framework — это коммерческая реализация Microsoft CLI для портативных устройств и Xbox 360 .
- .NET Micro Framework — это реализация CLI с открытым исходным кодом для устройств с ограниченными ресурсами.
- Mono — это альтернативная реализация CLI и сопутствующих технологий с открытым исходным кодом, в основном используемая для разработки мобильных устройств и игр.
- DotGNU — это выведенная из эксплуатации часть проекта GNU, начатого в январе 2001 года и направленного на предоставление бесплатного программного обеспечения с открытым исходным кодом, альтернативного Microsoft .NET Framework .
См. также
[ редактировать ]Примечания
[ редактировать ]- ^ Перейти обратно: а б «ISO/IEC 23271:2012 – Информационные технологии. Общеязыковая инфраструктура (CLI)» . ИСО . Архивировано из оригинала 2 июля 2023 года.
- ^ Перейти обратно: а б «ЭКМА-335» . ЭКМА Интернешнл . Июнь 2012. Архивировано из оригинала 16 октября 2023 года.
- ^ «Введение в продвинутую разработку приложений для Магазина Windows с использованием HTML5 и JavaScript» . Пресс-магазин Microsoft . 15 октября 2013 г. Архивировано из оригинала 30 марта 2023 г.
- ^ де Икаса, Мигель (15 сентября 2011 г.). «WinRT демистифицируется» . Архивировано из оригинала 30 ноября 2023 года.
- ^ Галли, Питер (6 июля 2009 г.). «Стандарты Ecma C# и CLI» . Порт 25 . Архивировано из оригинала 9 июля 2009 года . Проверено 26 сентября 2009 г.
- ^ в-алье (16 марта 2023 г.). «[MS-DEVCENTLP]: обещание сообщества Microsoft» . Microsoft Learn . Проверено 1 мая 2023 г.
Ссылки
[ редактировать ]- «Стандарт ECMA-335, Общеязыковая инфраструктура (CLI)» . Экма Интернешнл . Проверено 1 ноября 2023 г.
- «ISO/IEC 23271, Общеязыковая инфраструктура» . ИСО/МЭК . Проверено 27 сентября 2006 г.
- «Ecma C# и стандарты общеязыковой инфраструктуры» . Корпорация Майкрософт . Проверено 13 октября 2009 г.
- «Языковая независимость и языконезависимые компоненты» . Microsoft Learn . 21 декабря 2022 г. . Проверено 19 мая 2023 г.
Внешние ссылки
[ редактировать ]