Подтвердить что ты не робот

CLR и CLI - В чем разница?

Я хочу знать, в чем именно разница между CLR и CLI? Из того, что я прочитал до сих пор, кажется, что это указывает на то, что CLI является подмножеством CLR. Но не все ли в CLR обязательно? Что именно может быть оставлено вне CLR для создания CLI?

4b9b3361

Ответ 1

CLR - это реализация Microsoft

Ответ 2

CLR - это среда выполнения, в которой приложение .NET безопасно размещено/запущено.

Вы можете увидеть его как частную операционную систему .NET, которая инициирует и загружает только до запуска приложения .NET.

CLR заботится о некоторых существенных требованиях любого приложения .NET, которое в противном случае потребовало бы много преднамеренного кода для его реализации; требования, которые являются целостными по своей природе и существенными для любого вида применения для эффективного, эффективного и безопасного использования (например, Управлять распределением памяти и освобождать ее, когда это не требуется, избегать оборванных указателей, избегать ошибок при наборе текста и т.д.]

С другой стороны, CLI представляет собой спецификацию/набор руководств, в которых объясняется, как реализовать среду выполнения приложения и характер сгенерированного кода приложения, который позволяет использовать несколько языков высокого уровня на разных компьютерных платформах, не переписываясь для конкретных архитектур.

CLI разработан Microsoft и стандартизован ISO и ECMA.

CLR представляет собой практическую реализацию раздела CLI VES [Virtual Execution System] и формирует один из основных компонентов платформы MS.NET.

На непрофессиональном языке CLI - это рецепт, в то время как CLR - это кухня: -)

Ответ 3

CLR (Common Language Runtime) - это реализация Microsoft VES (Virtual Execution System) от Microsoft. VES вместе с CTS (система общего типа), CLS (спецификация общего языка) и спецификация метаданных являются частью спецификации CLI (инфраструктуры общего языка).

VES - это стандартизированная спецификация виртуальной машины, которая должна быть реализована для загрузки и выполнения модулей CIL (Common Intermediate Language) (dll и exe). Реализация VES также предоставляет сервисы времени выполнения, такие как сборка мусора и безопасность.

ECMA С# и стандарты общеязыковой инфраструктуры

Ответ 4

CLI, Инфраструктура общего языка - это спецификация или критерии, разработанные Microsoft.

Любой язык программирования, который соответствует критериям CLI, может обращаться к общей библиотеке классов и может быть скомпилирован в общий промежуточный язык (байт-код). После компиляции в общий промежуточный язык любая программа затем может быть скомпилирована в машинный код, понятный конкретной системе, на которой он работает. Он описывает исполняемый код и среду выполнения. Проще говоря, это позволяет нам использовать различные языки высокого уровня на разных машинах без переписывания кода.

CLR, Время выполнения Common Language, которое представляет собой реализацию CLI от Microsoft.

CLR - это компонент виртуальной машины в .NET Framework, более известный как среда выполнения, и отвечает за выполнение .NET-программ. Это своего рода операционная система для .NET-программ, которые выполняют множество функций, требуемых для обработки программы.


введите описание изображения здесь

где CIL - это Common Intermediate Language, который подается в CLR для дальнейшего создания машинного кода.


Особенности CLR:

  • Управление памятью
  • Обработка исключений
  • Безопасность доступа кодов
  • Управление потоками
  • Отладка
  • Проверка и компиляция
  • Тип безопасности
  • Коллекция мусора

Ответ 5

CLR - это среда выполнения .net, в которой запускаются все виды приложений .net. Например, когда вы пишете свой код на С# или другом языке из стека dot NET, компилятор компилирует и преобразует его в управляемый модуль. Управляемый модуль - это IL (промежуточный язык) и метаданные. Прежде всего, важно помнить, что всякий раз, когда вы компилируете исходный код, компилятор переводит его в управляемый модуль. Для пояснения, это не машинный код, который будет выполнять ваш процессор. Фактически, IL - это промежуточный язык, близкий к языку ассемблера. Аналогично, он также известен как объектно-ориентированный машинный язык.

Проверьте эту статью о более подробном объяснении:

http://alevryustemov.com/programming/common-language-runtime/

Ответ 6

CLR - это полная среда, в которой CLI, CTS, CLS работает в интеграции, она также включает сборку мусора, управление памятью, безопасность, встроенный язык для собственного кода... CLI - это спецификация формата исполняемого кода, а время выполнения среду, которая может выполнять этот код.