automatatheory's People
automatatheory's Issues
Проверка программы "Лексический анализатор(лексер)" от 08.03.2021
Проверка РГР №1 (этап 5: подключение лексера, синтаксический анализ ЯП) от 28.06.2021
- По требованиям задачи нужно предоставить два варианта грамматики: первый с лексемами, второй с токенами(лексемы заменяются на соответствующие токены от лексера). Нашёл только один вариант, не понятно какой именно. Скорее всего грамматика с токенами писалась вручную. Доказательств автоматизации не заметил. Переход от первого варианта ко второму должен происходить автоматически. Что будет если в лексере поменяется какой-либо токен? Нужно будет вручную править грамматику или есть другой способ?
- Недочёты в лексере дают о себе знать. Пока по-прежнему знак умножения корректно не обрабатывается, но в этом виноват лексер, не анализатор (см. замечания от 08.03.2021 по лексеру)
- Почему нельзя умножить с присвоением, а с остальными операциями так можно?
-
Пожелание: эти правила очень похожие, но стиль оформления в грамматике у них очень разный(особенно между 1-ым и 2-ым и 3-ьим). Во всех правилах циклится один из нетерминалов и осуществляется выход по пустому символу
-
Было бы хорошо, если вместе с сообщением об ошибке, показывались бы варианты того, как эту ошибку исправить(какой токен был бы правильным в этой ситуации)
По самой работе анализатора замечаний как таковых нет. Самая серьёзная проблема - есть сомнения, что грамматика с токенами автоматически сгенерирована из грамматики с лексемами
- Этап 5 РГР № 1 принят: 15 баллов из 20 (28.06.2021)
Возможно повышение баллов, за работу, если будут исправлены все замечания, приведённые выше, все тесты пройдут, и не возникнет новых замечаний
Также за своевременное выполнение задания и хорошую реализацию - начисляем бонус - 3 балла
Итого: 18 баллов
Проверка РГР №1 (этап 1: удаление левой рекурсии и факторизация грамматики) от 29.05.2021
Хорошая работа!
-
После проведения факторизации получившимся (новым) правилам также может потребоваться факторизация. В данном тесте, следует сначала вынести за скобку a b (что и было сделано), а потом вынести терминал с у правила F0
-
Этап 1 РГР № 1 принят: 18 баллов из 20 (29.05.2021)
Возможно повышение баллов, за работу, если будут исправлены все замечания, приведённые выше, все тесты пройдут, и не возникнет новых замечаний
Также за своевременное выполнение задания и хорошую реализацию - начисляем бонус - 3 балла
Итого: 21 балл
Проверка РГР №1 (этап 4: бегунок-трассировка) от 30.05.2021
Отличная работа, есть пару предложений по улучшению:
-
Исправить замечания по этапу 3 (к сожалению, не могу поставить максимум за бегунок, который бегает по таблице, которая построена по не LL(1)-грамматике)
-
Если в грамматике символ конца цепочки проставляется автоматически, то почему бы его не проставлять автоматически и в конец входной цепочки?
-
Этап 4 РГР № 1 принят: 19.5 баллов из 20 (30.05.2021)
Возможно повышение баллов, за работу, если будут исправлены все замечания, приведённые выше, все тесты пройдут, и не возникнет новых замечаний
Также за своевременное выполнение задания и хорошую реализацию - начисляем бонус - 4 балла
Итого: 23.5 баллов
Проверка РГР №1 (этап 2: поиск направляющих множеств) от 29.05.2021
Задание также выполнено правильно. Есть один вопрос
-
Исходная грамматика генерирует цепочки вида a * b * , по этой грамматике получается цепочка ab. По грамматике на выходе цепочка ab$, где $ - конец цепочки, не получится, получится только цепочка a$b$. Значит, грамматики не эквиваленты
Проблема в том, что грамматика не является пополненной. Вижу, что сталкивались с такой проблемой, поэтому символ конца цепочки добавляется после всех преобразований (удаление левой рекурсии и факторизации), а не до.. Этот способ сработает, только если в не пополненной грамматике после нетерминалa-аксиомы в правой части не будет ничего стоять. Если грамматику пополнить вручную, то становится всё правильно -
Этап 2 РГР № 1 принят: 18 баллов из 20 (29.05.2021)
Возможно повышение баллов, за работу, если будут исправлены все замечания, приведённые выше, все тесты пройдут, и не возникнет новых замечаний
Также за своевременное выполнение задания и хорошую реализацию - начисляем бонус - 3 балла
Итого: 21 балл
Проверка РГР №1 (этап 3: таблица-генератор) от 30.05.2021
Пример взят из контрольной работы по LL(1)-грамматике, 1-ый пример
-
При пересечении направляющих символов у двух и более альтернатив у одного правила (здесь это правило R0), грамматика становится не LL(1). Также результат работы бегунка становится неопределённым, так как в зависимости от построения таблицы, бегунок может "угадать" нужную строку, а может и нет. Прелесть LL(1)- разбора в том, что мы по 1-му символу во входной цепочке сразу знаем по какому правилу нам нужно идти. При возникновении ситуации пересечения направляющих множеств следует выдать пользователю ошибку, а не строить таблицу с бегунком. Также следует реализовать автоматическую проверку на пересечение множеств перед постройкой таблицы и бегунка
-
Этап 3 РГР № 1 принят: 17 баллов из 20 (30.05.2021)
Возможно повышение баллов, за работу, если будут исправлены все замечания, приведённые выше, все тесты пройдут, и не возникнет новых замечаний
Также за своевременное выполнение задания и хорошую реализацию - начисляем бонус - 2 балла
Итого: 19 баллов
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.