Информация об изменениях

Сообщение Re[37]: 32/64/AnyCPU - что за @$^%$? от 02.11.2016 14:14

Изменено 02.11.2016 14:17 Serginio1

Здравствуйте, tranzit, Вы писали:

Что CLR эмулирует? Он просто компилирует код. Там никакого понятия эмуляции не существут.

Прочитал. Где в CLR какая либо замена? CIL это язык, аналог ассемблера.
Опять же байт код выполняет не только Java, но и на питон и 1С и еще куча интерпритаторов. Если убрать JIT,
то по сути они тоже VM? Отличие от Java только в статической типизации и сборщике мусора.
трехадресный код это тоже VM


Так объясни мне где в .Net эмуляция, Весь код перед выполнением компилируется.
Ты так и не ответил про NGEN, Net Native.


Вот это и есть виртуальные машины, который выполняет код предназначенный для других Осей,процессоров.
В VS полно таких эмуляторо и бот они как раз и являются VM.
При этом код компилируется под определенную ось и процессор.


T>к ТЕРМИНАМ язык программирования, интерпретатор, компилятор, среда исполнения, байт код, виртуальная машина

T>надо добавить
T>трансляцию, песочницу, дебагеры, КОНТЕЙНЕРЫ.

Вот CLR это как раз среда выполнения, но в ней никакой эмуляции не происходит. Все компилируется в машинный код.
Эмуляция происходит только в Hyper-V
T>Текст длинный получился.
T>Попробую чуть позже написать про все эти термины и где лежит граница между терминами

T>Замечу что в браузере для javascript работает не виртуальная машина а контейнер.


А в чем различие? Уже есть WebAssembly по твоей териналогии тот же байт код.

WebAssembly определяет абстрактное синтаксическое дерево(AST), которое хранится в бинарном формате. Бинарность это здорово, так как позволяет создавать меньшие приложения. Наверняка вы задаетесь вопросом, как можно отлаживать бинарный код.

Re[37]: 32/64/AnyCPU - что за @$^%$?
Здравствуйте, tranzit, Вы писали:

Что CLR эмулирует? Он просто компилирует код. Там никакого понятия эмуляции не существут.

Прочитал. Где в CLR какая либо замена? CIL это язык, аналог ассемблера.
Опять же байт код выполняет не только Java, но и на питон и 1С и еще куча интерпритаторов. Если убрать JIT,
то по сути они тоже VM? Отличие от Java только в статической типизации и сборщике мусора.
трехадресный код это тоже VM


Так объясни мне где в .Net эмуляция, Весь код перед выполнением компилируется.
Ты так и не ответил про NGEN, Net Native.


Вот это и есть виртуальные машины, который выполняет код предназначенный для других Осей,процессоров.
В VS полно таких эмуляторо и бот они как раз и являются VM.
При этом код компилируется под определенную ось и процессор.


T>к ТЕРМИНАМ язык программирования, интерпретатор, компилятор, среда исполнения, байт код, виртуальная машина

T>надо добавить
T>трансляцию, песочницу, дебагеры, КОНТЕЙНЕРЫ.

Вот CLR это как раз среда выполнения, но в ней никакой эмуляции не происходит. Все компилируется в машинный код.
Эмуляция происходит только в Hyper-V
T>Текст длинный получился.
T>Попробую чуть позже написать про все эти термины и где лежит граница между терминами

T>Замечу что в браузере для javascript работает не виртуальная машина а контейнер.


А в чем различие? Уже есть WebAssembly по твоей териналогии тот же байт код.

WebAssembly определяет абстрактное синтаксическое дерево(AST), которое хранится в бинарном формате. Бинарность это здорово, так как позволяет создавать меньшие приложения. Наверняка вы задаетесь вопросом, как можно отлаживать бинарный код.



Опять же https://habrahabr.ru/post/261205/

В: Почему бы не использовать JVM?
О: Попытки добавить JVM в браузеры с помощью плагинов были и не раз. К сожалению, ничего хорошего из этого не вышло. В JavaScript есть встроенная виртуальная машина, поэтому добавление еще одной приводит к появлению второго набора API подключений, чтобы дать виртуальной машине доступ к DOM, сетям, сенсорам, устройствам ввода и т.п. За это придется кое чем пожертвовать. Например, как будут процессы в виртуальной машине распределять между собой имеющиеся ресурсы? Ответить на этот вопрос сложнее, чем кажется.