ЯПИС
Успеваемость
Группа | Таблица |
---|---|
821701 | 1t8kRUQatlshEuxhlcuhZAjuuOgNpzeISJ_bPKj_TReA |
821702 | 1afe_WAlHAOvvN7jmXVpCf5MojG1CGLK4-PN7y4FbN0s |
821703 | 13AqvZYdqu70mtUCshHq8i-OqoPsfc7FFjLaD1nBX2xc |
821704 | 17jW-mHsWfB79iuo4DJeN4g19SMBiLb_AMiRTWwD74Y8 |
Контрольные точки
Лабораторные работы
Условия: 11gVMTmYfsWA3t7hHfLAeAperfacvMM5i
Условия работы в семестре:
- Работы выполняются строго по порядку
- Работа оценивается от 0 до 10
- Итоговая оценка это среднее арифметическое промежуточных оценок
- Итоговая оценка может быть округлена вниз или вверх
- При пропуске каждого дедлайна отнимается 1 балл
- Для допуска к экзамену итоговая оценка должна быть не менее 4
Процесс сдачи:
- Выполнить условие работы
- Удостовериться что выполнены все пункты условия
- Сделать pull-request в репозиторий
- Показать результат работы лично на паре
- Удостовериться что pull-request был принят
Что оценивается:
- Непосредственное качество работы
- Культура ведения git-репозитория
Важно: Рull-request необходимо делать в ветку со своим именем.
Требования к каждой части лабы
Будет пополнятся в процессе
Лабораторная работа 1 - разработка компилятора:
- 1.1 Примеры исходного кода
- Определится с предметной областью языка, языком написания компилятора, целевым кодом
- Написать 3 примера реализации аглоритмов на придуманном языке. Алгоритмы берём из выбранной предметной области.
- 1.2 Полный синтаксис и грамматика
- Полностью доработать синтаксис и грамматику языка
- Написать файл грамматики языка
- 1.3 Лексический и синтаксический анализатор
- На основе написанной грамматики сгенерировать анализаторы
- Тестирование на написанных ранее примерах
- 1.4 Семантический анализатор
- Реализовать построение абстрактного синтаксического дерева
- Реализовать таблицы символов и проверку на использование идентификаторов
- Тестирование генерации и валидации дерева на написанных ранее примерах
- 1.5 Обработка семантических ошибок
- Реализовать проверки совместимости типов
- Другие проверки в зависимости от предметной области
- Тестирование валидации дерева на написанных ранее примерах
- 1.6 Генерация целевого кода
- Транслировать компилируемый код в целевой код
- Сгенерировать исполняемый файл
Лабораторная работа 2 - документация по разработанному языку:
- Описание синтаксиса языка
- Ключевые слова
- Объявление переменных
- Выражения
- Утверждения
- Условные переходы
- Циклы
- Описания базовых возможностей языка
- Стандартные функции
- Специфические выражения или утверждения
- Примеры кода
- Описания принципов работы языка
- Процесс компиляции
- Особенности скомпилированного кода
Практические задачи
Условия: 1oPJMqrZIVkvh4sPHNqJ1VasMcTiFYlph
Условия работы в семестре:
- Всего даётся 3 попытки
- Попытки начинают считаться за неделю до дедлайна
- При пропуске каждого дедлайна отнимается 1 попытка
- Решение несданных задач выносится на экзамен
Процесс сдачи:
- Выполнить условие задачи
- Оформить отчёт в гугл-док
- Удостовериться что выполнены и описаны все пункты условия
- Показать отчёт лично на паре
- Удостовериться что ссылка на гугл-док добавлена в общую таблицу
Важно: Для отчета титульный лист делать не нужно, хватит простого заголовка в одну сточку с вашей группой, ФИО и вариантом.