Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоргалка / спо / СПО 1.doc
Скачиваний:
22
Добавлен:
26.01.2019
Размер:
408.06 Кб
Скачать

8. Трансляторы. Компиляторы. Интерпретаторы.

Транслятор (Т)

Это программа, которая переводит входную программу, на исходном входном языке, в эквивалентную выходную программу на результирующем ей языке.

В работе Т. участвуют, всегда, три программы:

  1. Сам Т. является программой и входит в состав СПО вычислительной системы, т.е. является частью ПО. Т. представляет собой набор машинных команд и выполняется как все программы в рамках ОС. Все составные части Т. представляют собой фрагменты или модули программы со своими входными и выходными данными.

  2. Исходными данными для работы Т. служит текст входной программы (некоторая последовательность предложений входного языка программирования), обычно это символьный файл, содержащий текст программы.

  3. Выходными данными Т. является текст результирующей программы, который строится на синтаксических правилах заданных на выходном языке. Смысл результирующей программы определяется симатикой выходного языка.

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

Чтобы создать Т. необходимо выбрать входной и выходной языки. С точки зрения преобразование предложений входного языка в эквивалентные предложения выходного языка , Т. выступает как переводник.

Например: трансляция с языка СИ в Ассемблер не отличается от перевода с русского на английский.

Компилятор (К)

Это Т., который осуществляет перевод исходной программы в эквивалентную ей объектную программу на язык машинных команд или на язык Ассемблер.

Отличие К. от Т.:

  • результирующая программа К. должна быть написана на языке машинных кодов или на Ассемблере;

  • результирующая программа Т. может быть написана ???? языке.

Результирующая программа К. называется объектной программой или объектом кодов. Файл в который она записывается называется объектным файлом. Между объектной программой и исполняемой программой существует разница. Порожденная К. программа не может непосредственно выполняться на К., т.к. не привязана к конкретной области памяти, где должны располагаться ее код и данные.

Интерпритатор (И)

Это программа, которая воспринимает входную программу на ее исходном языке и выполняет ее.

Отличие И. от Т. К.%

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

Требования об эквивалентности исходной программы и порожденных машинных кодов должны выполняться.

Соседние файлы в папке спо