- •Проектирование трансляторов
- •Проектирование трансляторов
- •1 Лабораторная работа «Построение лексического анализатора» 8
- •2 Лабораторная работа «Перевод исходной программы в обратную польскую запись» 21
- •3 Лабораторная работа № 3 «Перевод опз исходного выражения в текст на выходном языке. Генерация машинного кода» 47
- •4 Лабораторная работа № 4 «Построение синтаксического анализатора» 55
- •Введение
- •1Лабораторная работа «Построение лексического анализатора»
- •1.1Основные понятия лексического анализа
- •1.2Лексемы простого pl-подобного языка программирования
- •1.3Функции и таблицы лексического анализа
- •1.4Диаграмма состояний лексического процессора
- •2Лабораторная работа «Перевод исходной программы в обратную польскую запись»
- •2.1Понятие обратной польской записи
- •2.2Алгоритм Дейкстры
- •2.3Перевод выражений, содержащих переменные с индексами, в опз
- •2.4 Перевод в опз выражений, содержащих указатели функций
- •2.5Перевод условных выражений в опз
- •2.6Перевод оператора присваивания в опз
- •2.7Перевод оператора безусловного перехода и меток в опз
- •2.8Перевод условного оператора в опз
- •2.9Перевод описаний переменных и процедурных блоков в опз
- •2.10Комплексный пример перевода исходной программы в опз
- •3Лабораторная работа № 3 «Перевод опз исходного выражения в текст на выходном языке. Генерация машинного кода»
- •3.1Базовые понятия
- •3.2Правила генерации машинного кода
- •3.3Комплексный пример перевода опз исходной программы в машинный код
- •4Лабораторная работа № 4 «Построение синтаксического анализатора»
- •Варианты заданий
- •Порядок выполнения лабораторных работ и требования к их оформлению
- •Операторы описания процедур и функций
- •Оператор безусловного перехода и метки
- •Операторы описания процедур и функций
- •Оператор условного перехода
- •Операторы описания данных (идентификаторов и массивов)
- •Проектирование трансляторов
№
В И Ш Н Я К О В Ю.М.
Б А Л А Б А Е В А И.Ю.
Проектирование трансляторов
Руководство к циклу лабораторных работ по курсу «Теория языков программирования и методы трансляции»
Таганрог 2008
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Технологический институт Федерального государственного образовательного учреждения высшего профессионального образования “Южный федеральный университет”
ВИШНЯКОВ Ю.М.
БАЛАБАЕВА И.Ю.
Руководство к циклу лабораторных работ по курсу «Теория языков программирования и методы трансляции»
Проектирование трансляторов
Для студентов направления «Информатика и вычислительная техника»
010503 «Математическое обеспечение и администрирование информационных систем» (специалитет),
230105 «Программное обеспечение вычислительной техники и автоматизированных систем» (специалитет),
230100 «Информатика и вычислительная техника» (бакалавриат)
Таганрог 2008
УДК 681.3×5 (075.8)
Рецензенты:
Вишняков Ю.М., Балабаева И.Ю. Проектирование трансляторов: Руководство к циклу лабораторных работ по курсу «Теория языков программирования и методы трансляции». – Таганрог: Изд-во ТТИ ЮФУ, 2008. – __с.
Руководство к циклу лабораторных работ охватывает все аспекты проектирования трансляторов языков программирования высокого уровня: лексический анализ, синтаксический анализ, преобразование исходной программы во внутреннее представление в виде обратной польской записи и генерация объектного кода программы из внутреннего представления.
Содержание цикла лабораторных работ основано на материалах, используемых авторами в учебном процессе ТТИ ЮФУ по курсу «Теория языков программирования и методы трансляции».
Пособие предназначено для студентов направления «Информатика и вычислительная техника»: специальностей 010503 «Математическое обеспечение и администрирование информационных систем», 230105 «Программное обеспечение вычислительной техники и автоматизированных систем» и бакалавриата по направлению 230100 «Информатика и вычислительная техника».
Библиогр.: _назв.
© Ю.М. Вишняков, И.Ю. Балабаева, 2008
© ТТИ ЮФУ, 2008
Оглавление
Введение 7
1 Лабораторная работа «Построение лексического анализатора» 8
1.1 Основные понятия лексического анализа 8
1.2 Лексемы простого PL-подобного языка программирования 8
1.3 Функции и таблицы лексического анализа 11
1.4 Диаграмма состояний лексического процессора 15
2 Лабораторная работа «Перевод исходной программы в обратную польскую запись» 21
2.1 Понятие обратной польской записи 21
2.2 Алгоритм Дейкстры 21
2.3 Перевод выражений, содержащих переменные с индексами, в ОПЗ 23
2.4 Перевод в ОПЗ выражений, содержащих указатели функций 26
2.5 Перевод условных выражений в ОПЗ 29
2.6 Перевод оператора присваивания в ОПЗ 31
2.7 Перевод оператора безусловного перехода и меток в ОПЗ 33
2.8 Перевод условного оператора в ОПЗ 36
2.9 Перевод описаний переменных и процедурных блоков в ОПЗ 37
2.10 Комплексный пример перевода исходной программы в ОПЗ 42