Как использовать этот репозиторий
git clone --recurse-submodules <репозиторий>
Необходимы следующие NuGet пакеты:
- NUnit
- NUnit3TestAdapter
- NUnit.ConsoleRunner
Как запустить тесты из репозитория
Учебная карта дисциплины
Программа курса
Страница курса на Moodle
Авторы курса
- Лекции, практические задания - С.С. Михалкович
- дополнительные задания, подготовка и сопровождение материалов - А.П. Баглий
Лекции
Практические занятия
Тема 1. Синтаксические диаграммы автоматных языков и реализация распознавателей на их основе
Тема 2. Создание ручного лексического анализатора простого языка программирования
Тема 3. Создание лексического анализатора с помощью программы GPLex
Тема 4. Создание ручного синтаксического анализатора простого языка программирования
Тема 5. Создание синтаксического анализатора с помощью программы GPPG
Тема 6. Семантические действия при синтаксическом разборе. Построение синтаксического дерева программы
Тема 7. Визиторы по синтаксическому дереву
Тема 8. Генерация и выполнение IL-кода
Дополнительные темы. Индивидуальные задания
Устаревшие темы
Тема 1. Конечные автоматы и реализация распознавателей на их основе
Тема 6. Создание парсеров на основе GPLEX+GPPG
Тема 7. Семантические действия в синтаксическом анализаторе. Построение дерева программы
Устаревшие вспомогательные материалы к теме Yacc-файл и его формат
Индивидуальное задание 3 на зачет 2011 г.
Выполнить:
- создав ручной компилятор с нисходящим разбором
- создав компилятор с использованием GPLex+GPPG
Дополнительная информация
Литература
- А.Ахо, М.Лам, Р.Сети, Д.Ульман. Компиляторы. Принципы, технологии, инструменты. М, Вильямс, 2008
- С.З.Свердлов. Языки программирования и методы трансляции. Питер, 2007
- Э.А.Опалева, В.П.Самойленко. Языки программирования и методы трансляции. BHV, 2005
- Ю.Г.Карпов. Основы построения трансляторов. BHV, 2005
- В.А.Серебряков, М.П.Галочкин «Основы конструирования компиляторов»
- Книга “Языки и трансляции” Б. К. Мартыненко