CompilersCourse
CompilersCourse copied to clipboard
Theory of compilation course, MIPT
CompilersCourse
Курс "Языки программирования и теории компиляции" ФПМИ МФТИ, 2 курс.
Содержание
- Грамматика
- Список семинаров
- 01. Лексический анализатор
- 02. Синтаксический анализатор
- 03. Построение AST-дерева
- 04. Интерпретатор через Visitor
- 05. Таблицы символов
- 06. Механизмы вызова функций
- 07. Построение дерева IR
- 08. Оптимизация дерева IR
- Список чекпоинтов:
- Одиночные:
- 01. AST
- 02. Visitors
- 03. Подготовка семантики
- 04. Дерево scope-ов
- 05. Система типов
- 06. Промежуточное представление LLVM
- 07. Создание исполняемого файла
- Парные:
- 01. AST + locations
- 02. Visitors + подготовка семантики
- 03. Дерево scope-ов + Система Типов
- 04. Обработка функций + ошибок
- 05. IR-tree
- Одиночные:
Сдача заданий
Сдавать задание на почту: [email protected]
На почту кидаем номер checkpoint-a, ссылку на github
Flow работы в проекте
- В ветке main/master находится работающая версия кода, в нее будут сливать изменения кураторы
- Для разработки проекта создается ветка dev, в которой выполняется разработка
- После того, как вы считаете, что определенную часть задания выполнили, создаете отдельную ветку checkpoint_x (x=1,2,3) из ветки dev, создаете pull request из ветки checkpoint_x в ветку main/master, добавляете ревьюера на pull request
- Если ревьюер попросил сделать изменения, то вы делаете изменения в ветке checkpoint_x и вливаете ее в dev, НЕ СЛИВАЯ при этом ветку в main/master
- В описании pull request-а пишете списком (добавляете в README.md) список изменений, который произошел в новой версии проекта (от одного чекпоинта к другому)
Сборка Docker контейнера
Ссылка на image - https://hub.docker.com/r/akhtyamovpavel/compilers_course_image
Скачивание образа:
docker pull akhtyamovpavel/compilers_course_image
Сборка образа:
docker build -t akhtyamovpavel/compilers_course_image .