В прошлой статье я рассказал о .NET Core, объяснил компоненты и дал общий обзор того, как они работают. В этой статье я объясню, как работает процесс компиляции, как компилятор берет код и преобразует его в собственный машинный код.
Как выполняются приложения .NET?
В .NET процесс выполнения кода включает два этапа: компиляция и выполнение.
Что такое обработка во время компиляции и выполнения?
В процессе компиляции компилятор переводит исходный код в код Microsoft Intermediate Language (MSIL). На этапе выполнения CLR содержит компилятор Just-In-Time (JIT), который преобразует код MSIL в собственный машинный код, который затем выполняется процессором. CLR использует метаданные и преобразует MSIL в собственный код.
Метаданные описывают типы, определения и подписи, которые используются средой выполнения во время выполнения. Среда выполнения находит и извлекает метаданные из файла, а также из библиотек базовых классов. (BCL) по мере необходимости во время выполнения. CIL — это абстрактный язык, используемый компилятором в качестве промежуточного звена между кодом программы и кодом сборки. Сборка общеязыковой инфраструктуры (CLI) создается путем сборки MSIL. Эта сборка представляет собой скомпилированную библиотеку кода двух типов: EXE и DLL. Типы EXE и DLL можно запускать в любой операционной системе с установленной средой CLR.
Что такое сборка?
Сборка похожа на jar-файлы, в .NET компилятор выдает исполняемые файлы в виде exe-файлов, которые можно запускать в любой операционной системе с установленной CLR.
Что такое JIT-компилятор?
Сегодня пользователь может выбирать из разных операционных систем с настраиваемой конфигурацией, что может быть проблематичным при запуске запущенных приложений. Компилятор JIT берет IL и гарантирует, что он будет работать на узле CLR, который преобразует MSIL в машинный код.
Я надеюсь, что эта статья помогла вам понять, что происходит, когда выполняется приложение .NET. КАК процесс выполнения разбит на два этапа, чтобы создать исполняемый файл, который компилируется один раз и может выполняться где угодно. Если вам понравилась эта статья, пожалуйста, дайте ей несколько лайков или оставьте комментарий ниже о том, как я мог бы улучшить. Еще раз спасибо!!!
Следующая статья: Создание приложения .NET в Ubuntu