задание для микропроцессора. Например, функция языка Си puts() указывает
компьютеру, что некая информация должна быть выведена на дисплей. Для выполнения
этой же функции может потребоваться использование большого количества
мнемонических кодов ассемблера и сотен бит.
Разумеется, сам по себе компьютер не понимает, что означает функция puts() и
другие инструкции языков высокого уровня, поэтому, прежде чем компьютер реально
сможет выполнить задание, оно должно быть переведено на его собственный язык—
язык двоичных кодов.
Операцию по переводу человеческих слов в двоичные коды можно выполнить
двумя способами, которые называют компиляцией и интерпретацией.
Компиляторы
Компилятор переводит сразу весь текст программы и сохраняет результат на
диске, так что программу можно запустить в любое время.
В сущности, компилятор— это компьютерная программа, которая (с помощью
другой программы, называемой компоновщиком) преобразует все ваши инструкции в
двоичные коды таким образом, чтобы программа могла быть выполнена компьютером.
Прежде всего компилятор убеждается, что программа написана в соответствии с
правилами языка программирования, затем создает промежуточную форму программы—
объектный файл. Если во время работы компилятор встретит непонятную ему
инструкцию, он сообщит об этом, и вам придется решить возникшую проблему и
повторить компиляцию. Компоновщик программ преобразует объектные коды в
исполняемую программу (это не означает, что программа сразу же и выполняется).
При работе с компилятором программа существует как бы в трех состояниях.
Сначала создается исходный файл, который содержит текст программы, написанный на
Си. Его можно распечатывать и читать так же, как любой текстовый файл, созданный при
помощи текстового процессора. Этот файл можно редактировать, тем самым изменяя
программу. Программа, прошедшая компиляцию, содержится в объектном файле, а
окончательный результат представляет собой исполняемый файл, который можно
запустить на выполнение.
Си, Си++, Паскаль, Кобол и Фортран— это примеры компилирующих языков.
Интерпретатор
Интерпретатор переводит компьютеру все инструкции непосредственно в момент
их выполнения.
Программа, обрабатываемая интерпретатором, существует только в виде
исходного текстового файла. Язык BASIC, который поставляется с операционной
системой MS-DOS, является примером интерпретирующего языка.
Почему имеет смысл использовать интерпретаторы? Например, когда вы еще
только учитесь программировать, интерпретатор позволяет без труда писать и сразу же
тестировать программу строка за строкой. Компилятору же, чтобы приступить к переводу,
необходимо иметь полностью завершенный текст всей программы, или, как минимум,
отдельной исполняемой ее части.
Почему же в таком случае пользуются компилятором? В силу того, что
интерпретатор делает процесс создания программы очень легким, у пользователя
появляется искушение пренебречь стадией предварительного планирования и
проектирования, необходимой для того, чтобы создать работающую программу. Он
уверенно приступает к делу, пытаясь писать программу с налету, а затем проводить
долгие бесполезные часы, внося изменения методом проб и ошибок. Это не лучший
способ работы, и поскольку вы только приступаете к изучению программирования, вам
лучше учиться работать грамотно с самого начала.
Кроме того, интерпретируемые языки работают медленнее. Необходимо загрузить
интерпретатор в память компьютера, затем переводить и выполнять каждую отдельную
строку программы. Компилятор преобразует весь текст программы сразу, а после этого