
- •Формальные грамматики и языки. Элементы теории трансляции. (учебное пособие для студентов II курса)
- •Элементы теории формальных языков и грамматик Введение.
- •Основные понятия и определения
- •Классификация грамматик и языков по Хомскому
- •Примеры грамматик и языков.
- •Разбор цепочек
- •Преобразования грамматик
- •Задачи.
- •Элементы теории трансляции Введение.
- •Описание модельного языка
- •Лексический анализ
- •Int scan_g(){
- •О недетерминированном разборе
- •Задачи лексического анализа
- •Лексический анализатор для м-языка
- •Второй этап: по дс пишем программу
- •Задачи.
- •Синтаксический и семантический анализ
- •Метод рекурсивного спуска
- •О применимости метода рекурсивного спуска
- •Void l()
- •Void s(void)
- •Void a(void)
- •Синтаксический анализатор для м-языка
- •О семантическом анализе
- •Void a() {
- •Void check()
- •Семантический анализатор для м-языка
- •Обработка описаний
- •Int declare; / описан ? 1-"да", 0-"нет" /
- •Void decid (int I, char t)
- •Void ipush (int I); / значение I - в стек /
- •Int ipop (void); / из стека - целое /
- •Void dec (char t)
- •Контроль контекстных условий в выражении
- •Void spush (char s); / значение s - в стек /
- •Контроль контекстных условий в операторах
- •Void eqtype (void)
- •Void eqbool (void)
- •Задачи.
- •Генерация внутреннего представления программ
- •Язык внутреннего представления программы
- •If (not b) then goto l
- •If b then s1 else s2
- •If (not b) then goto l2; s1; goto l3; l2: s2; l3: ...
- •Синтаксически управляемый перевод
- •Генератор внутреннего представления программы на м-языке
- •Int value;}
- •Void put_lex (struct lex l)
- •Void put_lex5 (struct lex l)
- •Void checkop_p (void)
- •If (strcmp (res, "no"))
- •Интерпретатор полиЗа для модельного языка
- •Void interpreter(void) {
- •If (eq ("not")) {ipush (!ipop()); break;};
- •Ipush(ip); break;
- •Ipush(ip); break;
- •Ipush((int)ip); break;
- •Задачи.
- •Литература
- •Содержание
Литература
Д.Грис. Конструирование компиляторов для цифровых вычислительных машин. - М., Мир, 1975.
Ф.Льюис, Д.Розенкранц, Р.Стирнз. Теоретические основы проектирования компиляторов. - М., Мир, 1979.
А.Ахо, Дж.Ульман. Теория синтаксического анализа, перевода и компиляции. - Т. 1,2. - М., Мир, 1979.
Ф.Вайнгартен. Трансляция языков программирования. - М., Мир, 1977.
И.Л.Братчиков. Синтаксис языков программирования. - М., Наука, 1975.
С.Гинзбург. Математическая теория контекстно-свободных языков. - М., Мир, 1970.
Дж.Фостер. Автоматический синтаксический анализ. - М., Мир, 1975.
В.Н.Лебедев. Введение в системы программирования. - М., Статистика, 1975.
Содержание
ЭЛЕМЕНТЫ ТЕОРИИ ФОРМАЛЬНЫХ ЯЗЫКОВ И ГРАММАТИК 3
Введение. 3
Основные понятия и определения 3
Классификация грамматик и языков по Хомскому 6
Примеры грамматик и языков. 8
Разбор цепочек 8
Преобразования грамматик 11
Задачи. 12
ЭЛЕМЕНТЫ ТЕОРИИ ТРАНСЛЯЦИИ 17
Введение. 17
Описание модельного языка 17
Лексический анализ 18
О недетерминированном разборе 22
Задачи лексического анализа 24
Лексический анализатор для М-языка 25
Задачи. 29
Синтаксический и семантический анализ 32
Метод рекурсивного спуска 32
О применимости метода рекурсивного спуска 34
Синтаксический анализатор для М-языка 37
О семантическом анализе 39
Семантический анализатор для М-языка 40
Задачи. 45
Генерация внутреннего представления программ 48
Язык внутреннего представления программы 48
Синтаксически управляемый перевод 51
Генератор внутреннего представления программы на М-языке 52
Интерпретатор ПОЛИЗа для модельного языка 53
Задачи. 55
ЛИТЕРАТУРА 59
СОДЕРЖАНИЕ 60