Воскресенье, 19.05.2024, 14:49
Приветствую Вас Гость | RSS
Меню сайта
Категории раздела
База языка C# [3]
В данном разделе будут статьи по базовым понятиям языка C#
Основы языка С# [22]
Раздел продолжает рассматривать основы языка C#
Задачи [2]
примеры решения задач
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Поиск
Главная » Статьи » C# » Основы языка С#

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

Создание приложений с помощью .NET Framework означает написание программы на любом языке программирования, который поддерживается этой платформой. Для того чтобы написанная, например на C#, программа была выполнена, ее необходимо преобразовать в программу на языке, «понятном» компьютеру (исполняемый код). Такой процесс преобразования называется компиляцией, а программа, которая его выполняет - компилятором. В прошлом почти все компиляторы генерировали код для конкретных процессорных архитектур. При разработке платформы .NET от этой зависимости постарались избавиться. Для этого ввели двухшаговую компиляцию.
На первом этапе все .NET компиляторы генерируют промежуточный код, код на языке Intermediate Language (IL — промежуточный язык) или IL-код. Т.е. компиляция со всех языков программирования .NET, включая С#, преобразуется в этот промежуточный язык. IL-код не является специфическим ни для какой операционной системы и ни для какого языка программирования. Он может быть выполнен в любой среде, для которой реализована CLR-система.
На втором этапе IL-код переводится в код, специфичный для конкретной операционной системы и архитектуры процессора. Эта работа возлагается на JIT-компилятор (Just In Time compiler - компилирование точно к нужному моменту). Только после этого операционная система может выполнить приложение.
Замечание. JIT-компилятор входит в состав среды CLR.
IL-код, выполняемый под управлением CLR, называется управляемым (managed). Это означает, что среда CLR полностью управляет жизненным циклом программы: отслеживает безопасность выполнения команд программы, управляет памятью и т.д. Это несомненно является достоинством управляемого кода. Конечно, использовать приложения, разработанные на основе управляемого кода, можно только, когда на компьютере установлена .NET Framework.
Использование IL-кода имеет и оборотную сторону – поддержка любой платформы означает отказ от функциональности, специфичной для конкретной платформы. Обойти это ограничение позволяет использование неуправляемого кода (unmanaged), т.е. кода, который не контролируется CLR или выполняется самой операционной системой. Такой код приходится использовать при необходимости обращения к низкоуровневым функциям операционной системы (например, понятие реестра существует только в Windows и функции, работающие с реестром, приходится вызывать из операционной системы). Иногда использование неуправляемого кода позволяет ускорить выполнение некоторых алгоритмов.

Категория: Основы языка С# | Добавил: solowey (14.01.2016)
Просмотров: 3120 | Комментарии: 2 | Рейтинг: 0.0/0
Всего комментариев: 2
avatar
0
1 jonestar4 • 22:33, 05.04.2023
О, полезно, полезно, благо
avatar
0
2 jonestar4 • 22:35, 05.04.2023
2к просмотров, и ни одного пользователя, ну ребят...
avatar
Вход на сайт