Общая языковая инфраструктура

Общая языковая инфраструктура
ИСО/МЭК 23271:2012(Е)
Аббревиатура интерфейс командной строки
Статус Опубликовано
Год начался 2000 ; 24 года назад ( 2000 )
Впервые опубликовано 2001 год ; 23 года назад ( 2001 ) (Экма) и 2003 год ; 21 год назад ( 2003 ) (ISO/IEC)
Последняя версия Шестое издание
июнь 2012 г .; 12 лет назад ( 2012-06 )
Организация Разработчики: 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)

Помимо прочего, спецификация 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 и сопутствующих технологий с открытым исходным кодом, в основном используемая для разработки мобильных устройств и игр.

См. также [ править ]

Примечания [ править ]

  1. ^ Jump up to: Перейти обратно: а б «ISO/IEC 23271:2012 – Информационные технологии. Общеязыковая инфраструктура (CLI)» . ИСО . Архивировано из оригинала 2 июля 2023 года.
  2. ^ Jump up to: Перейти обратно: а б «ЭКМА-335» . ЭКМА Интернешнл . Июнь 2012. Архивировано из оригинала 16 октября 2023 года.
  3. ^ «Введение в продвинутую разработку приложений для Магазина Windows с использованием HTML5 и JavaScript» . Пресс-магазин Microsoft . 15 октября 2013 г. Архивировано из оригинала 30 марта 2023 г.
  4. ^ де Икаса, Мигель (15 сентября 2011 г.). «WinRT демистифицируется» . Архивировано из оригинала 30 ноября 2023 года.
  5. ^ Галли, Питер (6 июля 2009 г.). «Стандарты Ecma C# и CLI» . Порт 25 . Архивировано из оригинала 9 июля 2009 года . Проверено 26 сентября 2009 г.
  6. ^ в-алье (16 марта 2023 г.). «[MS-DEVCENTLP]: обещание сообщества Microsoft» . Microsoft Learn . Проверено 1 мая 2023 г.

Ссылки [ править ]

Внешние ссылки [ править ]