Языки высокого уровня
Запись программ на языке ассемблера является достаточно трудной, поэтому были разработаны способы написания программ в стиле, напоминающем обычный английский язык. Это достигается с помощью так называемых «языков высокого уровня», из которых, возможно, наиболее известны Pascal, FORTRAN и широко распространенный BASIC (существует еще очень много других языков: RPG, FORTH, LISP, CORAL, С и другие — каждый со своими привлекательными особенностями).
На языке высокого уровня программист записывает инструкции в виде, очень похожем на английский. Например, приведенная ниже программа на языке Pascal выдает распечатку требуемой таблицы умножения,
var number, count: integer
begin
readln ('Which table do you want', number);
for count = 1 to 10 do
writeln (count, 'times', number, 'is', count*number);
end. (of program)
Даже если читатель не знаком с языком Pascal, работа программы совершенно понятна (если, например, потребуется изменить таблицу и выполнить операцию умножения не десять, а двадцать раз, то очевидно, в какой строке нужно произвести изменение).
Исходная программа на языке высокого уровня может быть выполнена двумя различными способами. Компилятор — это программа, которая преобразует целиком программу на языке высокого уровня в объектную программу в машинном коде. Затем полученная объектная программа может быть выполнена независимо от исходной программы или компилятора.
В случае использования интерпретатора как исходная программа, так и интерпретатор присутствуют в машине во время выполнения. Интерпретатор просматривает каждую из строк исходного кода, преобразуя их в эквивалентную инструкцию в машинном коде по мере их выполнения. Объектная программа при использовании интерпретатора не создается.
Компилируемая программа выполняется намного быстрее, чем интерпретируемая (обычно в 5—10 раз, поскольку интерпретатор должен осуществлять дополнительные операции), и скомпилированная объектная программа будет гораздо меньше, чем эквивалентная исходная программа для интерпретатора. Компиляторы тем не менее не столь просты в использовании, о чем свидетельствует следующая типичная последовательность:
- В компьютер загружается текстовый редактор.
- Исходная программа вводится с клавиатуры или загружается с диска.
- Полученный исходный файл сохраняется на жестком диске.
- Компилятор загружается с диска и затем запускается на выполнение.
- Исходный файл загружается с жесткого диска.
- Начинается процесс компиляции (это потребует нескольких минут). Если обнаруживаются какие-либо ошибки, необходимо вернуться к шагу 1.
- Создается объектная программа, которая может быть сохранена на жестком диске и/или запущена на выполнение. При обнаружении каких-либо ошибок при выполнении необхо-* димо вернуться к шагу 1.
Язык интерпретатора намного проще в применении, и для многих прикладных задач потеря скорости не является существенной. Как правило, BASIC является интерпретируемым языком, a Pascal, С и FORTRAN — компилируемыми. Рис 1.9 наглядно представляет работу с компилируемыми и интерпретируемыми языками высокого уровня.