Понятие транслятора


Основное достоинство языков высокого уровня – возможность описания программ решения задачи в удобной для восприятия человеком форме. Но так как каждое семейство ЭВМ имеет свой собственный, специфический внутренний (машинный) язык и может выполнять лишь те команды, которые записаны на этом языке, то для перевода исходных программ на машинный язык используются специальные программы – трансляторы.

Работа всех трансляторов строится по одному из двух принципов: интерпретация или компиляция.

Интерпретация подразумевает пооператорную трансляцию и последующее выполнение оттранслированного оператора исходной программы. В связи с этим можно отметить два недостатка метода интерпретации:

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

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

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

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

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

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

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

Контрольные вопросы для самоподготовки студентов

1. Что такое язык программирования?

2. Что такое программа?

3. Объяснить понятие «язык программирования низкого уровня».

4. Объяснить понятие «язык программирования высокого уровня».

5. В чем заключается процедурный стиль программирования?

6. Объяснить сущность объектно-ориентированного программирования.

7. В каких областях используется логическое и функциональное программирование?

8. Что такое машинный язык?

9. Объяснить назначение транслятора.

10. Как работает транслятор-интерпретатор?

11. Как работает транслятор-компилятор?



Дата добавления: 2016-05-31; просмотров: 2840;


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

Воспользовавшись поиском можно найти нужную информацию на сайте.

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

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.