Главная arrow Развитие ПО arrow Искусство программирования
Как начинался компьютер
Компьютерная революция
Двоичный код
Разработки военных лет
Интегральные микросхемы
Микрокомпьютер
Персоны
Сеть
Язык компьютера
Развитие ПО
Гибкие системы
Средства разработки
Информатика
Вычислительная наука
Операционные системы
Искусственный интеллект
Предыстория
Поиск
Знания и рассуждения
Логика
Робототехника
 

 
Искусство программирования Печать

Прилежные переводчики программ

В принципе компьютер может обрабатывать команды и данные только тогда, когда они представлены в машинном коде, т. е. выражены на языке нулей и единиц, непосредственно связанном с электронной «начинкой» компьютера.

Однако писать программы в машинном коде - занятие крайне утомительное. Дело несколько упрощается, если воспользоваться языком ассемблера (языком низкого уровня), который разрешает вместо двоичных единиц и нулей использовать мнемонические коды (например, STA - для обозначения команды записи какой-то величины в регистр машины). Перевод ассемблерной программы в машинный код осуществляется с помощью другой программы, называемой ассемблером.

Язык ассемблера, как и машинный код, учитывает специфику конкретного типа компьютера, и поэтому оба этих языка позволяют программисту максимально эффективно использовать аппаратные особенности машины.

Тем не менее большинство программистов предпочитают пользоваться языками высокого уровня, поскольку они гораздо ближе к естественному, человеческому, языку. В то же время компьютер не может обрабатывать какие бы то ни было команды до тех пор, пока они не переведены в нули и единицы.

Этот перевод можно сделать с помощью транслятора (компилятора - или интерпретатора).

Транслятор - это специальная программа, которая одновременно рассчитана и на конкретный язык, и на конкретный тип компьютера. Обычно трансляторы загружаются во временную память с внешних запоминающих устройств.

Интерпретаторы в некоторых системах хранятся в постоянной памяти. С точки зрения выполнения работы компилятор и интерпретатор существенно различаются.

Компилятор читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем загружается в компьютер и выполняется. Интерпретатор переводит и выполняет программу строка за строкой. После того как программа откомпилирована, ни сама исходная программа, ни компилятор более не нужны. В то же время программа, записанная на интерпретируемом языке, должна интерпретироваться при каждом прогоне. Поэтому откомпилированные программы работают быстрее, но интерпретируемые проще исправлять и модифицировать.

Каждый конкретны язык ориентирован либо на компиляцию, либо на интерпретацию - в зависимости от того, для каких целей он создавался. Например, FORTRAN был задуман как язык для разработки больших программ, предназначенных для решения естественнонаучных и математических задач, в которых особенно важна скорость выполнения программ. Поэтому данный язык обычно реализуется с помощью компилятора. С другой стороны, BASIC создавался как язык для начинающих программистов, для которых построчное выполнение программы имеет неоценимые преимущества. Иногда для одного языка имеется и компилятор, и интерпретатор. В этом случае для разработки и тестирования программы можно воспользоваться интерпретатором, а затем откомпилировать отлаженную программу, чтобы повысить скорость ее выполнения.