В какой момент генерируется байт-код? - PullRequest
4 голосов
/ 10 января 2011

На каком этапе .NET Framework генерируется байт-код?

Верно ли я с утверждением, что пользователь пишет свой исходный код на языке по своему выбору (может быть, C #), когда этот источник компилируется, он преобразуется в байт-код? (что тогда использует этот байт-код?)

Ответы [ 3 ]

3 голосов
/ 10 января 2011

Определение из википедии:

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

Байт-код Althought - это общий термин, он больше используется в мире Java.В .net Intermediate Language (IL или MSIL) можно ссылаться как байт-код.Он создается каждым компилятором языка .net.Позже он исполняется CLR (аналог JVM в мире Java).Непосредственно перед тем, как CLR выполнит код, он компилируется компилятором Just-In-Time (часть CLR).Он компилируется на родном машинном языке и затем выполняется процессором напрямую.(Управляемые двоичные файлы также могут быть предварительно скомпилированы)

0 голосов
/ 10 января 2011

Байт-код является общим термином для большинства базовых языков ВМ.

Существует компилятор байт-кода и виртуальной машины.

Компилятор берет ваш код и преобразует его в байт-код.

Затем байт-код интерпретируется виртуальной машиной.

Виртуальная машина может иметь специальный модуль Jit, который преобразует байт-код в собственную сборку.Эта нативная сборка больше не нуждается в виртуальной машине для выполнения.Но ему, очевидно, нужна виртуальная машина, чтобы она называлась

. Байт-код - это всего лишь промежуточный язык, который разделяет виртуальную машину и ваш код.

0 голосов
/ 10 января 2011

Любой исходный код, нацеленный на .NET Framework, компилируется в MSIL (промежуточный язык MS), который может интерпретироваться и выполняться CLR. Код MSIL компилируется в собственном коде JIT (компилятором Just-In-Time) во время выполнения приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...