Трансляторы

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

Существуют два вида трансляторов: интерпретаторы, компиляторы.

Интерпретатором называется транслятор, производящий пооператорную (покомандную) трансляцию и последующее выполнение оттранслированного оператора исходной программы. Два недостатка метода интерпретации:

1. интерпретирующая программа должна находиться в памяти ЭВМ в течение всего процесса выполнения исходной программы, т.е занимать определенный объем памяти;

2. процесс трансляции одного и того же оператора повторяется столько раз, сколько раз должна исполняться эта команды в программе.

Компилятор – это программа, которая преобразует (транслирует) исходную программу в программу (модуль) на машинном языке. После этого программа записывается в память компьютера и только потом исполняется.

При компиляции процессы трансляции и выполнения разделены во времени: сначала исходная программа полностью переводится на машинный язык (после чего наличие транслятора в оперативной памяти не нужен), а затем оттранслированная программа может многократно исполняться.

Любой транслятор решает следующие основные задачи:

1. Анализирует транслируемую программу и определяет, содержит ли она синтаксические ошибки;

2. Генерирует выходную программу на языке команд ЭВМ;

3. Распределяет память для выходной программы, т.е. каждой переменной, константе, массивам и другим объектам отводится свой участок памяти.

Таким образом, Компилятор (англ. compiler — составитель, собиратель) читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется.

Интерпретатор (англ. interpreter — истолкователь, устный переводчик) переводит и выполняет программу строка за строкой.

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

Откомпилированные программы работают быстрее, но интерпретируемые проще исправлять и изменять.

 

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







Дата добавления: 2015-10-19; просмотров: 2205;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.