Государственный комитет Российской федерации
по высшему образованию
Ульяновский государственный
технический университет
КОНСТРУИРОВАНИЕ ТРАНСЛЯТОРОВ
ДЛЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ВЫСОКОГО
УРОВНЯ
Методические указания по
курсовому проектированию
Составитель: Ярушкина Н. Г. Ульяновск 1993
-3-
СОДЕРЖАНИЕ
1. ВВЕДЕНИЕ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 4
2. Этап проектирования N 1
Изучение блока лексического анализа тpанслятоpов языков
пpогpаммиpования... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 5
3. Этап пороектирования N 2
Изучение блока синтаксического аналиэа тpанслятоpов языков
пpогpаммиpования... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 13
4.
Этап проектирования N 3
Изучение синтаксически управляемой схемы трансляции... ... ... 23
5. Этап проектирования N 4
Изучение контекстных условий языков программирования... ... . . 28
6. Этап проектирования N 5
Изучение блока генерации объектного кода трансляторов языков
программирования... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 32
8. СПИСОК ЛИТЕРАТУРЫ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 44
.
-4-
ВВЕДЕНИЕ
Трансляторы - неотъемлемая часть любой вычислительной систе-
мы. Без них пришлось бы программировать в машинном коде! Это инс-
трумент, позволяющий программисту не задумываться над
особенностями реальной машины и сосредоточить свои усилия на за-
даче и соответствующих средствах языка высокого уровня. Настоящие методические указания посвящен изучению мето-
дов анализа исходного языка и генерации эффективной объектной
программы. Студенты должны усвоить и практически реализовать от-
дельные конструкции транслятора для определенных фрагментов за-
данного языка программирования, разобраться в технологической це-
почке процесса компилирования и способах ее реализации. Последовательность заданий курсового проекта соответствует
данной технологической цепочке и представляет собой: изучение и
программирование основных блоков транслятора - лексического ска-
нера (этап . N1); синтаксического анализатора (этап N2-4);
генератора объектного кода (этап N5). При изложении синтакси-
ческого анализа внимание уделяется нескольким аспектам анализа,
зависящим от сложности синтаксиса языка. Рассмотрены методы ис-
пользования контекстно-свободных грамматик (этап N2), примене-
ние синтаксически управляемой схемы трансляции (этап N3) и
особенности учета контекстных условий в языках программирования
(этап N4). При изложении методов оптимизации объектного кода
уделяется внимание особенностям реализации языка высокого уровня
(на примере Турбо-Си) и соответствующим оптимизирующим возможнос-
тям его транслятора.
.
-5-
ЭТАП ПРОЕКТИРОВАНИЯ N 1
Изучение блока лексического анализа тpанслятоpов
языков пpогpаммиpования
Цель этапа проектирования:
Изучить методы постpоения лексических сканеpов, модели лек-
сического анализа на основе конечных автоматов и фоpмальных гpам-
матик, pазpаботать лексический сканеp-анализатоp в соответствии с
заданием.