Программа представляет собой набор отдельных команд компьютера. Эти команды являются достаточно «простыми», например, сложение, умножение, сравнение или пересылка отдельных данных. Каждая команда содержит в себе сведения о том, какая операция должна быть выполнена, с какими операндами выполняются вычисления и куда должен быть помещен результат.
Человеку свойственно формулировать и решать задачи в выражениях более общего характера, чем команды ЭВМ. Это стало возможным с появлением языков программирования высокого уровня.
Для перевода программы, написанной на языке высокого уровня, в соответствующую машинную программу используются языковые процессоры. Различают два вида языковых процессоров: интерпретаторы и трансляторы.
Интерпретатор – это программа, которая получает исходную программу и по мере распознавания конструкций входного языка реализует действия, описываемые этими конструкциями.
Транслятор – это программа, которая принимает исходную программу и порождает на своем выходе программу, записываемую на объектном языке программирования. В частном случае объектным может служить машинный язык, и в этом случае полученную на выходе транслятора программу можно сразу же выполнить на ЭВМ. Транслятор с языка высокого уровня называют компилятором.
Компилятор выполняет последовательно две задачи:
1. Проверяет текст исходной программы на отсутствие синтаксических ошибок.
2. Создает (генерирует) исполняемую программу – машинный код.
Генерация исполняемой программы происходит только в том случае, если в тексте исходной программы нет синтаксических ошибок.