Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы на экзамен по информатике.docx
Скачиваний:
5
Добавлен:
19.04.2019
Размер:
132.23 Кб
Скачать

20. Программы-трансляторы: назначение, разновидности и особенности работы.

Транслятор — программа или техническое средство, выполняющее трансляцию программы. Транслятор обычно выполняет также диагностику ошибок, формирует словари идентификаторов, выдаёт для печати тексты программы и т. д. Трансляция программы — преобразование программы, представленной на одном из языков программирования, в программу на другом языке и, в определённом смысле, равносильную первой. Язык, на котором представлена входная программа, называется исходным языком, а сама программа — исходным кодом. Выходной язык называется целевым языком или объектным кодом. Трансляторы подразделяют: 1) Адресный. Функциональное устройство, преобразующее виртуальный адрес в реальный адрес. 2) Диалоговый. Обеспечивает использование языка программирования в режиме разделения времени. 3) Многопроходной. Формирует объектный модуль за несколько просмотров исходной программы. 4) Обратный.То же, что детранслятор. 5) Однопроходной. Формирует объектный модуль за один последовательный просмотр исходной программы. 6) Оптимизирующий. Выполняет оптимизацию кода в создаваемом объектном модуле. 7) Синтаксически-ориентированный (синтаксически-управляемый). Получает на вход описание синтаксиса и семантики языка и текст на описанном языке, который и транслируется в соответствии с заданным описанием. 8) Тестовый. Набор макрокоманд языка ассемблера, позволяющих задавать различные отладочные процедуры в программах, составленных на языке ассемблера. Процесс компиляции состоит из двух основных этапов − анализа и синтеза. На этапе анализа распознается текст исходной программы, создаются и заполняются таблицы идентификаторов. Результатом анализа является некое внутреннее представление программы, понятное компилятору. На этапе синтеза из внутреннего представления программы и информации из таблицы идентификаторов, получается результирующая объектная программа. В составе компилятора присутствует часть, ответственная за анализ и исправление ошибок. При наличии ошибок в тексте исходной программы пользователь должен получить максимально полную информацию о типе ошибки и месте ее возникновения. Компилятор с точки зрения теории формальных языков выполняет две основные функции: 1) он является распознавателем для языка исходной программы. Получает на вход цепочку символов входного языка, проверяет ее принадлежность языку и выявляет правила, по которым эта цепочка построена; 2) он генерирует результирующую программу. На выходе создается цепочка выходного языка по определенным правилам. Распознавателем сгенерированной цепочки объектной программы будет выступать вычислительная система.

21. Библиотеки транслятора: назначение, хранение, применение, структура, примеры.

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

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

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

3) Ассемблеры – переводят программу, записанную на языке ассемблер (автокода), в программу на машинном языке.

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

 Анализирует транслируемую программу, в частности определяет, содержит ли она синтаксические ошибки;  Генерирует выходную программу (ее часто называют объектной или рабочей) на языке команд ЭВМ (в некоторых случаях транслятор генерирует выходную программу на промежуточном язык, например: ассемблер);  Распределяет память для выходной программы (в простейшем случае это заключается в значении каждому фрагменту программ, переменным, константам, массивам и другим объектам своих адресов участков памяти).