Статья 2319

Компиляторы транслируют весь текст программы, написанной на языке высокого уровня, в машинный код в ходе одного непрерывного процесса. При этом создается полная программа в машинных кодах, которую затем можно выполнять без участия компилятора. Обычно работа с компилируемым языком состоит из трех этапов, сначала текст программы создается при помощи редактора текстов или какой-либо другой программы текстовой обработки, затем текст компилируется, и наконец, скомпилированная программа выполняется. Термин компилятор был введен в 1951 г. Грейс М. Хоппер, работавшей тогда, и назвавшей так свою первую транслирующую программу. Одной из операций, которую выполняла ее программа в ходе трансляции, были выборка стандартных последовательностей машинных команд из таблиц, хранящихся на магнитной ленте, и компиляция из них готовой программы.
Интерпретатор в каждый момент времени выполняет по одному предложению программы, по ходу дела превращая каждую конструкцию, записанную на языке высокого уровня, в машинные команды. Разница между компилятором и интерпретатором подобна разнице между переводчиком литературы и переводчиком устной речи. Переводчик литературы берет всю книгу и создает новый текст на другом языке. Переводчик устной речи переводит каждую фразу, как только она произнесена. В действительности большинство интерпретирующих программ проводят некоторую предварительную обработку текста перед тем, как начать выполнение программы. Так, ключевые слова преобразуются в более короткие знаки и имена переменных заменяются их адресами.

программы

программы

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