Министерство образования и науки Украины
Сумский государственный университет
Кафедра информатики
Конспект лекций
по курсу «Системное программирование»
на тему :«Программа-интерпретатор для учебного языка SPL»
Составил: студент 4го курса
Кобзарь В.Н.
Лектор: доц. Авраменко В.В.
Сумы, 2003
Постановка задачи 5
Теоретические сведения 6
Структура математического обеспечения ЭВМ 6
Элементы компиляции 6
Анализ формальных языков 6
Сведения о регулярных выражениях и грамматиках 6
Понятие о регулярных выражениях 7
Грамматика 7
Работа с цепочками 7
Расширенные грамматики 7
Задача анализа 8
Синтаксические диаграммы 8
Условия применения LA(1)-анализа 9
Правила прохождения дуг синтаксической диаграммы 10
Введение в компиляцию 10
Классификация 10
Структура компилятора 10
Лексический анализ 11
Функции 11
Синтаксический анализ 11
Функции 11
Генерация промежуточного кода 12
Функции 12
Проходы компилятора 12
SPL 12
Символы 12
Конструкции 13
Идентификаторы 13
Переменные 13
Константы 13
Ключевые слова 13
Функции 13
Конструкция if 14
Конструкция while 14
Пример: 14
Лексический анализ 14
Полный синтаксис языка SPL 15
Регулярные выражения и диаграммы: 15
Нетерминальный символ PROG 15
Нетерминальный символ DCONST 15
Нетерминальный символ CONS 16
Нетерминальный символ DVARB 16
Нетерминальный символ DFUNC 16
Нетерминальный символ PARAM 16
Нетерминальный символ BODY 17
Нетерминальный символ STML 17
Нетерминальный символ STAT 17
Нетерминальный символ EXPR 18
Нетерминальный символ TERM 19
Нетерминальный символ FACT 19
Нетерминальный символ FCTL 19
SPL-программы 20
Функции 20
Размещение информации в стеке 20
Команды SPL 22
Функции 22
Создание SPL-программы 23
Простая программа: 24
Программа №2: 24
Индивидуальные изменения 26
Изменение №1: Замена begin и end, начинающих и оканчивающих последовательность исполняемых операторов функции, на { и } соответственно 26
Изменение №2: Замена ключевого слова end, завершающего конструкции if и while, на @ 26
Изменение №3: Добавление своей собственной команды sqr — команды возведения в квадрат 27
Изменение №4: Перевод ключевых слов на русский язык 28
Текст программы 30
lex.h 30
spl_prog.c 32
Список литературы 46
Реализовать на примере простого языка SPL интерпретатор. Этот интерпретатор должен производить перевод с языка высокого уровня (SPL) на язык промежуточных команд, которые тут же и выполняются.
При написании интерпретатора необходимо осуществить:
А также необходимо:
Алфавит — конечное множество элементов, часто называемых символами. Обозначение: .
Цепочка или слово — конечное множество элементов из алфавита .
Язык — произвольное множество слов в алфавите .
Операции:
Предположим, некоторые символы не входят в алфавит , например, , тогда регулярным выражением называется цепочка из символов множества .
Это набор , где
— алфавит терминальных символов (заранее определенных символов);
— алфавит нетерминальных символов (т. е. выводимых символов);
— множество правил вывода для нетерминальных символов через терминальные или другие нетерминальные символы;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.