LINUX.ORG.RU

История изменений

Исправление quasimoto, (текущая версия) :

я кавычки не просто так поставил. Это цитата из твоего поста.

Ты спросил про x86 и про ЯП — я ответил про то и другое отдельно, так как это разные вещи (в одном контексте «интерпретация» это одно, в другом — немного другое, но тоже интерпретация в широком смысле, конечно), смешал ты :)

В остальном — интерпретация это выполнение представления, трансляция — перевод из одного представления в другое. Понятно, что трансляция будет предшествовать выполнению — вместо выполнения исходного представления мы транслируем исходное представление в целевое, которое потом и будем выполнять — потому что так эффективнее, чтобы таскать целевое представление (как JVM) или какие ещё могут быть причины. Если взять готовый компилятор и спросить, может ли он выполнять роль интерпретатора, то ответом будет «нет». И наоборот — интерпретатор не будет выполнять роль компилятора. Если спросить, можно ли одно «легко» превратить в другое — тоже «нет». Назначение разное. Всё общее что у них есть — они могут работать с одним представлением похожими методами (синтаксически ориентированная обработка, например), да и то, различий в деталях будет сколько хочешь. С этим представлением такими методами что угодно может работать — статический анализатор, например.

И не усложняй, всем понятно, что нет никакого принципиального различия в трансляции в LLVM и трансляции в x86. Просто другой выходной ЯП.

Это два разных компилятора. А ты на интерпретацию посягаешь :)

Ну вот выбери пару инструкций посложнее, напиши декодер, интерпретатор и покажи как он легко превращается в динамический транслятор (и без фокусов с микро-операциями и перекидыванием работы на gcc). Так, что ты будешь просто писать новый код на том же языке цэ, чиста принципиальна используя те же синтаксические конструкции языка цэ и представление после декодера? Легко, ага :)

И про ЯП я уже спрашивал — интерпретатор лямбда-исчисления (HOAS trick — несколько строчек) в компилятор? В нормальный компилятор?

Исходная версия quasimoto, :

я кавычки не просто так поставил. Это цитата из твоего поста.

Ты спросил про x86 и про ЯП — я ответил про то и другое отдельно, так как это разные вещи (в одном контексте «интерпретация» это одно, в другом — немного другое, но тоже интерпретация в широком смысле, конечно), смешал ты :)

В остальном — интерпретация это выполнение представления, трансляция — перевод из одного представления в другое. Понятно, что трансляция будет предшествовать выполнению — вместо выполнения исходного представления мы транслируем исходное представление в целевое, которое потом и будем выполнять, потому что так эффективнее, чтобы таскать целевое представление как JVM или какие ещё могут быть причины. Если взять готовый компилятор и спросить может ли он выполнять роль интерпретатора, то ответом будет «нет». И наоборот — интерпретатор не будет выполнять роль компилятор. Если спросить можно ли одно «легко» превратить в другое — тоже «нет». Назначение разное. Всё общее что у них есть это то что они могут работать с одним представлением похожими методами (синтаксически ориентированная обработка, например), да и то, различий в деталях будет сколько хочешь. С этим представлением такими методами что угодно может работать — статический анализатор, например.

И не усложняй, всем понятно, что нет никакого принципиального различия в трансляции в LLVM и трансляции в x86. Просто другой выходной ЯП.

Это два разных компилятора. А ты на интерпретацию посягаешь :)

Ну вот выбери пару инструкций посложнее, напиши декодер, интерпретатор и покажи как он легко превращается в динамический транслятор (и без фокусов с микро операциями и перекидыванием работы на gcc). Так, что ты будешь просто писать новый код на том же языке цэ, чиста принципиальна используя те же синтаксические конструкции языка цэ и представление после декодера? Легко, ага :)

И про ЯП я уже спрашивал — интерпретатор лямбда-исчисления (HOAS trick — несколько строчек) в компилятор? В нормальный компилятор?