Инфраструктура общего языка - Common Language Infrastructure

В Инфраструктура общего языка (CLI) является открытым Технические характеристики (технический стандарт) разработан Microsoft и стандартизированы ISO и Экма[1][2] который описывает исполняемый код и среду выполнения, которая позволяет несколько языков высокого уровня для использования на различных компьютерных платформах без переписывания для конкретных архитектур. Это означает, что он не зависит от платформы. В .NET Framework, .NET Core и Мононуклеоз являются реализациями интерфейса командной строки.

Обзор

Визуальный обзор Common Language Infrastructure (CLI)

Среди прочего, спецификация CLI описывает следующие четыре аспекта:

В Система общих типов (CTS)
Набор типы данных и операции, которые используются всеми CTS-совместимыми языки программирования.
В Метаданные
Информация о структуре программы есть не зависящий от языка, чтобы на него можно было ссылаться между языками и инструментами, что упрощает работу с кодом, написанным на языке, который разработчик не использует.
Спецификация общего языка (CLS)
Набор базовых правил, которым должен соответствовать любой язык, нацеленный на CLI, для взаимодействия с другими CLS-совместимыми языками. Правила CLS определяют подмножество системы общих типов.
В Виртуальная система исполнения (VES)
VES загружает и выполняет CLI-совместимые программы, используя метаданные для объединения отдельно сгенерированных фрагментов кода во время выполнения.

Все совместимые языки компилируются в Общий промежуточный язык (CIL), который является промежуточный язык это абстрагируется от аппаратного обеспечения платформы. Когда код выполняется, VES для конкретной платформы компилирует CIL в машинный язык в зависимости от конкретного оборудования и операционной системы.

Стандартизация и лицензирование

В августе 2000 г. Microsoft, Hewlett Packard, Intel, и другие работали над стандартизацией интерфейса командной строки. К декабрю 2001 г. он был ратифицирован Экма, с ISO стандартизация после апреля 2003 г.

Microsoft и ее партнеры владеют патентами на интерфейс командной строки. Ecma и ISO требуют, чтобы все патенты, необходимые для реализации, были доступны под "разумные и недискриминационные (RAND) условия. "Для лицензирования RAND обычно требуется выплата некоторого лицензионного платежа, что может быть причиной беспокойства по поводу Мононуклеоз. По состоянию на январь 2013 года ни Microsoft, ни ее партнеры не выявили каких-либо патентов, необходимых для реализации интерфейса командной строки, подпадающего под условия RAND.

По состоянию на июль 2009 г.[3] Microsoft добавлен C # и CLI к списку спецификаций, которые Обещание сообщества Microsoft относится к,[4] так что любой может безопасно внедрить определенные редакции стандартов, не опасаясь патентного иска со стороны Microsoft. Для реализации стандарта CLI требуется соответствие одному из поддерживаемых и определенных профилей стандарта, минимальным из которых является профиль ядра. Профиль ядра на самом деле представляет собой очень небольшой набор поддерживаемых типов по сравнению с хорошо известной базовой библиотекой стандартных установок .NET. Однако пункт о соответствии интерфейса командной строки позволяет расширять поддерживаемый профиль, добавляя новые методы и типы в классы, а также производя их из новых пространств имен. Но это не позволяет добавлять новые элементы в интерфейсы. Это означает, что функции интерфейса командной строки могут быть использованы и расширены, если соответствующая реализация профиля не изменяет поведение программы, предназначенной для работы в этом профиле, при этом допускает неопределенное поведение программ, написанных специально для этой реализации.

В 2012 году Ecma и ISO опубликовали новую редакцию стандарта CLI,[1][2] что не покрывается Обещанием сообщества.[4]

Реализации

  • .NET Framework - это оригинальная коммерческая реализация интерфейса командной строки Microsoft. Он поддерживает только Windows. В ноябре 2020 года его заменит .NET Core.
  • .NET Core - это бесплатный многоплатформенный преемник .NET Framework с открытым исходным кодом, выпущенный под Лицензия MIT
  • .NET Compact Framework это коммерческая реализация Microsoft CLI для портативных устройств и Xbox 360.
  • .NET Micro Framework - это реализация интерфейса командной строки с открытым исходным кодом для устройств с ограниченными ресурсами.
  • Мононуклеоз - это альтернативная реализация интерфейса командной строки и сопутствующих технологий с открытым исходным кодом, в основном используемая для разработки мобильных приложений и игр.

Смотрите также

Примечания

  1. ^ а б ISO / IEC 23271: 2012 - Информационные технологии - Common Language Infrastructure (CLI)
  2. ^ а б Стандарт ECMA-335 - 6-е издание (июнь 2012 г.)
  3. ^ «Стандарты Ecma C # и CLI - порт 25: сообщество разработчиков открытого исходного кода в Microsoft». 6 июля 2009 г. Архивировано с оригинал 9 июля 2009 г.. Получено 26 сентября, 2009.
  4. ^ а б Охватываемые спецификации | Открытые спецификации Microsoft

Рекомендации