Процесс перевода программы с языка программирования высокого уровня на машинный язык называется трансляцией. Трансляция осуществляется с помощью специальной программы, называемой транслятором. Существует два вида трансляции: интерпретация и компиляция. Соответствующие им программы называются интерпретаторами и компиляторами. Трансляторы с языков являются составной частью самой системы программирования, поэтому запуск программы предполагает сначала ее трансляцию, а потом собственно выполнение.
Рассмотрим процесс выполнения программы, написанной на языках-интерпретаторах, а затем на компиляторах.
Интерпретатор
1. Машина считывает очередной оператор программы.
2. Машина переводит оператор в свои, ей понятные команды.
3. При обнаружении ошибки интерпретация прерывается, и машина указывает на это.
4. Машина выполняет переведенные команды.
5. Машина «забывает» считанный оператор.
6. Машина продолжает данный процесс, пока не выполнятся все операторы, т.е. пока не дойдет до указателя конца программы.
7. Машина «забывает» выполненную программу.
Компилятор
1. Машина считывает очередной оператор, написанный на языке.
2. Машина переводит оператор в свои, ей понятные команды.
3. При попадании на ошибку процесс перевода прерывается, и машина указывает на это.
4. Машина продолжает данный процесс, пока не иссякнут все строки программы, т.е. пока не дойдет до указателя конца программы.
5. Машина выполняет переведенную программу целиком.
Из указанного выше процесса выполнения программы следует, что интерпретаторы работают медленнее, при запуске не «вылавливают» всех ошибок (лишь при попадании на них машина указывает на ошибку). Компиляторы работают быстрее, однако расходуют больше оперативной памяти.