Реферат: Проектирование трансляторов

большой части исходной программы таким образом, что рабочая прог-

рамма обращается в процессе единственного просмотра исходной

программы. В многопроходном трансляторе последовательности преоб-

разований применяются ко всей программе как к целому.

Имеется много факторов, определяющих выбор числа проходов

при проектировании трансляторов (время компиляции, время разра-

ботки, относительная независимость фаз трансляции, размеры ОП

ЭВМ).

Некоторые языки (Алгол-68, АДА) принципиально требуют для

своей реализации несколько проходов, в частности можно рассмот-

реть двухпроходную схему трансляции. Ее особенности:

1) она может использоваться для языков программирования, в

которых определяющая реализация идентификатора появляется (тек-

стуально) раньше любой прикладной реализации, что имеет место для

большинства языков;

2) при написании транслятора необходимо пректировать проме-

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

между программными проходами.

Лексический анализ (сканер)

Сканер - самая простая часть компилятора, иногда также назы-

ваемая лексическим анализатором. Сканер просматривает литеры ис-

ходной программы слева направо и строит символы программы - це-

лые числа, идентификаторы, служебные слова, двухлитерные символы,

такие как ** и // и т.д. Символы передаются затем на обработку

фактическому анализатору. На этой стадии может быть исключен ком-

ментарий. Сканер также может заносить идентификаторы в таблицу

символов и выполнять другую простую работу, которая фактически

требует анализа исходной программы. Он может выполнить большую

часть работы по макрогенерации в тех случаях, когда требуется

К-во Просмотров: 551
Бесплатно скачать Реферат: Проектирование трансляторов