- •Проектирование трансляторов
- •Проектирование трансляторов
- •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 «Построение синтаксического анализатора»
- •Варианты заданий
- •Порядок выполнения лабораторных работ и требования к их оформлению
- •Операторы описания процедур и функций
- •Оператор безусловного перехода и метки
- •Операторы описания процедур и функций
- •Оператор условного перехода
- •Операторы описания данных (идентификаторов и массивов)
- •Проектирование трансляторов
Операторы описания данных (идентификаторов и массивов)
Описание переменных с ключевого слова типа и содержит перечисление идентификаторов через запятую
<тип> <список элементов>
Типы переменных:
INTEGER (целый),
REAL (вещественный),
CHARACTER (символьный).
Например,
REAL A,B
Для описания массивов используется оператор DIMENSION, в котором указывается его имя и список размерностей в круглых скобках через запятую:
DIMENSION <имя массива> (размерность)
Например:
DIMENSION MASSIVE(A1,…,An)
Операторы описания функций
Функции имеют заголовок вида
<тип> FUNCTION <идентификатор>
PARAMETER <список формальных параметров>
и тело – список операторов, начинающийся операторами описания данных и оканчивающийся операторами
RETURN
END
Операторы описания подпрограмм
Подпрограммы имеют заголовок вида
SUBROUTINE <идентификатор>
PARAMETER <список формальных параметров>
и тело – список операторов, начинающийся операторами описания данных и оканчивающийся операторами
RETURN
END
Оператор безусловного перехода и метки
GO TO <метка>
Метка - число, расположенное в области с 1 по 5 символ строки:
123 I=25
…
GOTO 123
Оператор условного перехода
Начинается с ключевого слова «IF», имеет только неполный формат:
IF (логическое выражение) оператор
Список литературы
Вишняков Юрий Муссович
Балабаева Ирина Юрьевна
Проектирование трансляторов
Руководство к циклу лабораторных работ по курсу «Теория языков программирования и методы трансляции»
Ответственный за выпуск Балабаева И.Ю.
Редактор _________
Корректор __________
ЛР № 020565 от 23.06.97
г.
Формат 60841/16.
Гарнитура __.
Усл.п.л. – ___
Заказ № ___
Подписано
к печати . .09 г.
Бумага
офсетная.
Печать офсетная.
Уч.-изд.л.
– ___
1.1.1.1.1.1Тираж _______ экз.
«С»
Издательство Технологического института
Южного федерального университета
ГСП 17А, Таганрог, 28, Некрасовский, 44
Типография Таганрогского технологического института ЮФУ
Южного федерального университета
ГСП-17А, Таганрог, 28, Энгельса, 1