Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CП_Ответы.doc
Скачиваний:
15
Добавлен:
27.09.2019
Размер:
281.09 Кб
Скачать
  1. Дайте понятие прохода. Назовите отличия многопроходных трансляторов от однопроходных. Укажите, от чего зависит количество проходов.

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

Многопроходной. Формирует объектный модуль за несколько просмотров исходной программы.

Однопроходной. Формирует объектный модуль за один последовательный просмотр исходной программы.

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

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

− первый проход − лексический анализ;

− второй − синтаксический разбор и семантический анализ;

− третий − генерация и оптимизация кода.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]