компиляция и интерпретация



Интерпретация и компиляция

Автор Миша Курочкин задал вопрос в разделе Другие языки и технологии

Чем отличается компиляция от интерпретации? и получил лучший ответ

Ответ от Ўрий Ухов[гуру]
Компиляция, это сборка. Интерпритация, это разложить по полочкам.

Ответ от Вован де Морт[гуру]
интерпретация это когда текст на языке п. интерпретируют в машинные коды, а компиляция когда собирают уже программу, так кажется. ну на википедии есть все это

Ответ от =Serge=[гуру]
Интерпретатор построчно выполняет программу, сразу же компилируя и выполняя ее, пользователю компиляция не видна. Все что есть - только текст программы. Компиляция же предусматривает создание исполняемого файла - .ехе для Windows, например. Затем уже он запускается на выполнение. Есть языки и среды программирования и интерпретируемые и компилируемые.

Ответ от Президент интернета[гуру]
visual foxpro - интерпретатор
delphi - компилятор

Ответ от [гуру]
При компиляции исходный текст сперва переводят в машинный код (с помощью компилятора), и этот код пакуют в исполняемый файл, который затем можно запустить и он будет исполняться ОСью, а не особой программой.
При интерпретации исходный код либо напрямую передают исполняющей программе (интерпретатору, который парсит код и в зависимости от команд в коде выполняет определенные действия), либо упаковывают в оболочку, имитирующую стандартный исполняемый файл (под виндой - ЕХЕ). При запуске этого ЕХЕ исходный текст опять же передается интерпретатору - внешнему или также упакованному в этот ЕХЕ.
Как работает так называемая "JIT-компиляция" (в C#, Java) - не очень ясно.
Компилятор переводит код на C# в бинарный код, который затем пакуется в EXE.
Но что происходит при запуске этого EXE, как выполняется этот бинарный код?
Считается, что этот код при выполнении переводится в машинный код, который хранится в памяти, а затем тот код исполняется ОСью, и этот процесс и есть JIT-компиляция.
Но ведь "переводом в машинный код" можно назвать и простую интерпретацию, ведь интерпретатор по факту выполняет разные машинные коды при обнаружении разных команд в ехе, а это и есть перевод.
Т. е. JIT-компиляция - это скорее всего просто красивое слово, означающее ту же интерпретацию, только интерпретируемый код хранится не в текстовом виде, а в бинарном.

Ответ от Abc[гуру]
всё просто.
для начала, следует различать трансляцию и исполнение программы.
на этапе трансляции программа переводится в машинные коды.
если транслятор переводит в машинные коды каждую инструкцию и после этого сразу же происходит исполнение этой инструкции, то такой транслятор называют интепретатором.
если же, происходит трансляция сразу всей программы (единоразово, разумеется, в отличие от интепретации) без исполнения в машинный код и только потом программа исполняется, то такой транлятор называют комплятором.

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Чем отличается компиляция от интерпретации?
Транслятор на Википедии
Посмотрите статью на википедии про Транслятор
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*