gram:materials
This is an old revision of the document!
Материалы курса (gram:materials)
Лекции
| Номер | Тема | Материалы | Дополнительно |
|---|---|---|---|
| Лекция 1 | Введение в формальные языки. Иерархия Хомского. Регулярные языки и конечные автоматы. Регулярные языки и конечные автоматы. ДКА/НКА: преобразования и минимизация. | lec-1.pdf | исходники |
| **Лекция 2** | Регулярные языки и конечные автоматы | {{:gram:mat:lec-2.pdf|}} | [[gram:lec-2-slides|Слайды]] |
| **Лекция 3** | ДКА/НКА: преобразования и минимизация | {{:gram:mat:lec-3.pdf|}} | [[gram:lec-3-slides|Слайды]] |
| **Лекция 4** | Контекстно-свободные грамматики | {{:gram:mat:lec-4.pdf|}} | [[gram:lec-4-slides|Слайды]] |
| **Лекция 5** | Автоматы с магазинной памятью | {{:gram:mat:lec-5.pdf|}} | [[gram:lec-5-slides|Слайды]] |
| **Лекция 6** | Синтаксический анализ: LL(1) | {{:gram:mat:lec-6.pdf|}} | [[gram:lec-6-slides|Слайды]] |
| **Лекция 7** | Синтаксический анализ: LR(1) | {{:gram:mat:lec-7.pdf|}} | [[gram:lec-7-slides|Слайды]] |
| **Лекция 8** | Генерация кода с LLVM | {{:gram:mat:lec-8.pdf|}} | [[gram:lec-8-slides|Слайды]] |
Лабораторные работы
| Номер | Тема | Задание | Шаблоны | Примеры |
|---|---|---|---|---|
| ЛР1 | Лексический анализ | lab-1-task.pdf | lab-1-template.zip | lab-1-example.zip |
| ЛР2 | Синтаксический анализ | lab-2-task.pdf | lab-2-template.zip | lab-2-example.zip |
| ЛР3 | Семантический анализ | lab-3-task.pdf | lab-3-template.zip | lab-3-example.zip |
| ЛР4 | Генерация кода | lab-4-task.pdf | lab-4-template.zip | lab-4-example.zip |
Практические занятия
| Номер | Тема | Задачи | Решения |
|---|---|---|---|
| ПЗ1 | Регулярные выражения и автоматы | prac-1-tasks.pdf | prac-1-solutions.pdf |
| ПЗ2 | КС-грамматики и парсеры | prac-2-tasks.pdf | prac-2-solutions.pdf |
| ПЗ3 | Синтаксические анализаторы | prac-3-tasks.pdf | prac-3-solutions.pdf |
| ПЗ4 | Генерация LLVM IR | prac-4-tasks.pdf | prac-4-solutions.pdf |
Инструменты и документация
- ANTLR4
- LLVM
- Вспомогательные инструменты
Примеры проектов
| Уровень | Проект | Описание | Исходный код |
|---|---|---|---|
| Начальный | Калькулятор выражений | Арифметические выражения с переменными | example-calculator.zip |
| Средний | Мини-язык запросов | SQL-подобный язык для фильтрации данных | example-querylang.zip |
| Продвинутый | Декларативный конфигуратор | Язык для описания конфигураций систем | example-configlang.zip |
| Экспертный | Полноценный компилятор | Статически типизированный язык программирования | example-minilang.zip |
Полезные ресурсы
- Книги и учебники
- “The Definitive ANTLR 4 Reference” - Terence Parr
- “Compilers: Principles, Techniques, and Tools” - Aho, Ullman et al.
- “Engineering a Compiler” - Cooper, Torczon
- Онлайн-курсы
- Сообщества
График обновлений
Последнее обновление: 14.11.2025
- Добавлены материалы Лекции 1
- Обновлены задания для ЛР1
- Добавлены примеры проектов
- Загружена документация по ANTLR4
Планируемые обновления:
- 21.11.2025: Материалы Лекций 2-3
- 28.11.2025: Примеры решения практических задач
- 05.12.2025: Видеозаписи лекций
gram/materials.1763095759.txt.gz · Last modified: by eugeneai
