Языки программирования различаются по способу трансляции на компиляторы и интерпретаторы.
Трансляция - преобразование программы, представленной на одном языке программирования, в программу на другом языке программирования, в определенном смысле равносильную первой.
Обычно транслятор - это программа, преобразующая текст, написанный на алгоритмическом языке, в программу, состоящую из машинных команд.
Интерпретаторомназывают транслятор, способный параллельно переводить и выполнять программу, написанную на алгоритмическом языке высокого уровня. Достоинство интерпретатора- программу можно запускать и она будет работать (конечно же не в полной мере!) даже, если в ней написаны всего несколько первых команд; это особенно удобно в период отладки программы. Недостаток интерпретатора – программы (особенно, содержащие циклические вычисления) выполняются при таком способе трансляции очень медленно.
Компиляторомназывают транслятор, обрабатывающий исходный текст целиком, делающий его перевод и создающий законченный вариант программы на машинном языке. Главное достоинство компилятора – высокая скорость работы прграммы.
Поясним сказанное примером. Пусть τtи τr– характерные времена трансляции и выполнения некоторой обобщенной команды.
Пусть линейный вычислительный процесс, выполняется сначала при использовании интерпретатора, а затем компилятора.
Оценим общее время процесса в первом и втором случаях.
τ компил. = τt+ τt+ ⋅⋅ + τt+ τr+ τr+ ⋅⋅ + τr= N τt+ N τr= N( τt+ τr)
N команд N команд
Вывод: для линейного алгоритмического процесса время выполнения программы одинаково как при использовании интерпретатора, так и при использовании компилятора. Теперь рассмотрим циклический вычислительный процесс. Как и в первом примере, оценим время на выполнение программы сначала при использовании интерпретатора, а затем компилятора:
τинтерпр. = N( τt+ τr)
τ компил. = τt+ N τr
Вывод: для циклического алгоритмического процесса время выполнения программы при использовании интерпретатора может быть существенно большим, чем при использовании компилятора. Именно по этой причине компиляторы имеют существенное преимущество в скорости выполнения программ.