1

Принцип компиляции и выполнения программы в среде CLR

Принцип компиляции и выполнения программы в среде CLR

Система управления памятью называется Garbage Collector (GC)

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

1) Common Type System(CTS) которая описывает все базовые типы данных, поддерживаемые средой CLR, и определяет, как эти типы данных будут представлены в формате метаданных .NET

2) Common Language Specification (CLS) минимальный набор возможностей, который должен быть реализован производителями ПК, чтобы продукты работали в CLR

Для того чтобы написанная, например, на C# программа была выполнена, ее необходимо преобразовать в программу на языке, «понятном» компьютеру (исполняемый код).

Такой процесс преобразования называется компиляцией, а программа, которая его выполняет, компилятором

На первом этапе все .NET компиляторы генерируют промежуточный код на языке

Intermediate Language (IL — промежуточный язык) или IL-код. IL-код не является

специфичным ни для какой операционной системы и ни для какого языка программирования. Он может быть выполнен в любой среде, для которой реализована CLR-система. На втором этапе IL-код переводится в код, специфичный для конкретной операционной системы и архитектуры процессора. Эта работа возлагается на JIT-компилятор (Just In Time compiler – компилирование точно к нужному моменту). Только после этого операционная система может выполнить приложение. Замечание JIT-компилятор входит в состав среды CLR

IL-код, выполняемый под управлением CLR, называется управляемым (managed). Это

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

ограничение позволяет использование неуправляемого кода (unmanaged), т.е. кода, который не контролируется CLR и выполняется самой операционной системой. Такой код приходится использовать при необходимости обращения к низкоуровневым функциям операционной системы (например, понятие реестра существует только в Windows и функции, работающие с реестром, приходится вызывать из операционной системы). Иногда использование

неуправляемого кода позволяет ускорить выполнение некоторых алгоритмов

Еще больше новостей в моем телеграм канале EasyProgers - https://t.me/easyprogers

Лига программистов

2.1K постов11.9K подписчика

Правила сообщества

- Будьте взаимовежливы, аргументируйте критику

- Приветствуются любые посты по тематике программирования

- Если ваш пост содержит ссылки на внешние ресурсы - он должен быть самодостаточным. Вариации на тему "далее читайте в моей телеге" будут удаляться из сообщества

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества