3.14M
Категория: ЭлектроникаЭлектроника

Передовая инженерная школа программной инженерии, радиолокации и радионавигации

1.

Передовая инженерная школа
программной инженерии,
радиолокации и радионавигации

2.

Компилятор языка в AST-дерево
Проект состоит из 4 подзадач. За каждую подзадачу баллы начисляются
следующим образом:
За невыполненный первый пункт подзадачи — штраф −1.
За выполнение других пунктов — +1 за каждый.
По умолчанию за проект у всех стоит 1, плюс в каждой категории можно
набрать до +2 балла. Последний балл — за качество кода.
Дополнительно есть личный штраф/награда в случае, если команда работает
неравномерно (например, один не пишет код, а другой пишет за двоих).
2

3.

Компилятор языка в AST-дерево
Синтез языка программирования [0–2 балла]:
1) Описаны лексем ЯП для генерации лексического анализатора средствами
flex/Coco/R;
2) Описаны правила синтаксиса ЯП для генерации снитаксического
анализатора средствами bison/Coco/R [+1];
3) Описанные правила в полной мере протестированы на противоречия и
полноту возможных комбинаций лексем [+1].
3

4.

Компилятор языка в AST-дерево
Формирование AST-дерева [0–2 балла]:
1) Полученный кодогенераторами flex/bison/Coco/R код позволяет
формировать AST-дерево исходного файла, и предоставляет API навигации
по нему;
2) Оценка эффективности полученного дерева с точки зрения скорости
работы, затрат памяти, удобства доступа через API [+1];
3) Процедура кодогенерации полностью автоматизирована средствами cmake
для С/С++ решения и средствами Python для Python [+1].
4

5.

Компилятор языка в AST-дерево
Отображение AST-дерева в GUI через MVC [0–2 балла]:
1) Полученное AST-дерево отображается средствами Qt c применением
класса QStandardItemModel (1 курс)/реализацией абстрактного класса
QAbstractItemModel (2 курс);
2) Применены различные визуальные стили, декорации для отображения
различных лексем и синтаксических конструкций [+1];
3) Выделение элементов дерева синхронизировано с выделением строк в
окне отображения исходного кода [+1].
5

6.

Компилятор языка в AST-дерево
Подсветка синтаксиса на базе AST-дерева [0–2 балла]:
1) В окне отображения исходного кода некорректные строчки кода подсвечены
и указана ошибка в синтаксисе;
2) В окне отображения исходного кода различные текстовые лексемы
отображены различными цветами [+1];
3) В GUI пользователю предоставлена возможность указать цвета
отображения лексем [+1].
6

7.

Компилятор языка в AST-дерево
Оценка проекту ставится по формуле:
1 + [0-8 за пункты из сообщений выше] − [количество категорий, в которых
ничего не сделано] + [1 за качество кода].
Личная оценка ставится на основе оценки выше, с поправкой на личный
вклад, которая может быть как положительной, так и отрицательной.
7

8.

Компилятор языка в AST-дерево
Пример оценки:
Если в команде из 4 человек будут писать только двое, и они напишут целиком
и полностью пункты Синтез языка программирования и Формирование ASTдерева, но в программе не будет Подсветки синтаксиса (штраф), и будет
реализовано только Отображение AST-дерева в GUI через MVC без
декорования и синхронизации выделения элементов (нет ни баллов, ни
штрафа), то
Общая оценка = 1 + (2+2+0) − 1 + 1 = 5.
Тем, кто внёс большой личный вклад, добавится 2–3 балла, у тех,
кто не внёс — отнимутся.
Итого, личные оценки могут быть такими: 2, 2, 8, 8.
8
English     Русский Правила