Читать онлайн «Конструирование трансляторов для языков программирования высокого уровня: Методические указания по курсовому проектированию»

Автор Ярушкина Н.Г.

Государственный комитет Российской федерации по высшему образованию Ульяновский государственный технический университет КОНСТРУИРОВАНИЕ ТРАНСЛЯТОРОВ ДЛЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ Методические указания по курсовому проектированию Составитель: Ярушкина Н. Г. Ульяновск 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 в соответствии с заданием.