Re[38]: 32/64/AnyCPU - что за @$^%$?
От: Sinix  
Дата: 02.11.16 13:13
Оценка: 2 (1)
Здравствуйте, Serginio1, Вы писали:

S>>С точки зрения VES — безусловно да. На входе данные в общепринятом формате, на выходе — исполняемый код.

S> Данные в общепринятом формате это что?
ECMA-335 Partition III: CIL Instruction Set.

S> Почему этот формат легко декомпилировать в C# или Delphi.Net?

Коротко: везение.
Подробней: по двум причинам:
* из бинарного представления восстановить il не сложнее, чем набросать простенький дизассемблер.
* до недавнего времени конструкции шарпа легко и однозначно сопоставлялись с последовательностями в il.
Но начиная с третьего шарпа всё больше логики декомпиляторов — это эвристики, которые легко ломаются на обновлениях компилятора или при использовании il-реврайтеров. Халява кончилась.


S>>и до генерации RyuJIT IR напрямую из текстовых исходников.

S> То есть это язык который компилируется в машинные коды?

UPD: вопрос про RyuJIT IR?
Если да — Это вообще не язык, это ещё одно представление потока инструкций (по аналогии с gcc ir или llvm ir), заточено под быстрые оптимизации и лёгкую трансляцию в бинарный код.

Тем не менее даже такой изврат наотлично будет работать с остальным managed-кодом, чем с незапамятных времён пользовались отдельные извращенцы (см секцию Native Injection).

Если нет и вопрос про IL — см выше

С CIL вечно путаница — под ним понимают и CIL bytecode и CIL как язык, из контекста обычно понятно

для преобразования в бинарный код сам язык, очевидно, не нужен.


S>>Вы сначала определитесь, какой именно уровень и чего именно мы обсуждаем, затем можно продолжать будет.

S> Ну дык мы говрим о натягивании понятия VM на все, что имеет байт код.
А, бесполезное это дело. Нужно ещё знать контекст, в котором обсуждаем. Иначе под VM кучу разных вещей c разных логических уровней набивается. Про что и писал выше

Если говорить про CLI как про абстрактную модель, то там VM разумеется присутствует, но когда дело доходит до готовых бинарников, то вся роль "VM" сводится к набору runtime services. Конкретный их состав зависит от таргетинга.


S> Например по твоему CIL это не байт код.

Так CIL или CLI? разные ж вещи
Если CIL — тыкни носом, где я это писал плиз.
Отредактировано 02.11.2016 13:18 Sinix . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.