Giter Site home page Giter Site logo

automatatheory's People

Contributors

al-ry avatar greathorizon avatar

Watchers

James Cloos avatar  avatar

automatatheory's Issues

Проверка РГР №1 (этап 5: подключение лексера, синтаксический анализ ЯП) от 28.06.2021

  • По требованиям задачи нужно предоставить два варианта грамматики: первый с лексемами, второй с токенами(лексемы заменяются на соответствующие токены от лексера). Нашёл только один вариант, не понятно какой именно. Скорее всего грамматика с токенами писалась вручную. Доказательств автоматизации не заметил. Переход от первого варианта ко второму должен происходить автоматически. Что будет если в лексере поменяется какой-либо токен? Нужно будет вручную править грамматику или есть другой способ?

image

  • Недочёты в лексере дают о себе знать. Пока по-прежнему знак умножения корректно не обрабатывается, но в этом виноват лексер, не анализатор (см. замечания от 08.03.2021 по лексеру)

image

  • Почему нельзя умножить с присвоением, а с остальными операциями так можно?

image
image
image

  • Пожелание: эти правила очень похожие, но стиль оформления в грамматике у них очень разный(особенно между 1-ым и 2-ым и 3-ьим). Во всех правилах циклится один из нетерминалов и осуществляется выход по пустому символу

  • Было бы хорошо, если вместе с сообщением об ошибке, показывались бы варианты того, как эту ошибку исправить(какой токен был бы правильным в этой ситуации)

По самой работе анализатора замечаний как таковых нет. Самая серьёзная проблема - есть сомнения, что грамматика с токенами автоматически сгенерирована из грамматики с лексемами

  • Этап 5 РГР № 1 принят: 15 баллов из 20 (28.06.2021)
    Возможно повышение баллов, за работу, если будут исправлены все замечания, приведённые выше, все тесты пройдут, и не возникнет новых замечаний
    Также за своевременное выполнение задания и хорошую реализацию - начисляем бонус - 3 балла
    Итого: 18 баллов

Проверка РГР №1 (этап 1: удаление левой рекурсии и факторизация грамматики) от 29.05.2021

Хорошая работа!

Единственное замечание:
image

  • После проведения факторизации получившимся (новым) правилам также может потребоваться факторизация. В данном тесте, следует сначала вынести за скобку 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

Задание также выполнено правильно. Есть один вопрос
image

  • Исходная грамматика генерирует цепочки вида a * b * , по этой грамматике получается цепочка ab. По грамматике на выходе цепочка ab$, где $ - конец цепочки, не получится, получится только цепочка a$b$. Значит, грамматики не эквиваленты
    Проблема в том, что грамматика не является пополненной. Вижу, что сталкивались с такой проблемой, поэтому символ конца цепочки добавляется после всех преобразований (удаление левой рекурсии и факторизации), а не до.. Этот способ сработает, только если в не пополненной грамматике после нетерминалa-аксиомы в правой части не будет ничего стоять. Если грамматику пополнить вручную, то становится всё правильно

  • Этап 2 РГР № 1 принят: 18 баллов из 20 (29.05.2021)
    Возможно повышение баллов, за работу, если будут исправлены все замечания, приведённые выше, все тесты пройдут, и не возникнет новых замечаний
    Также за своевременное выполнение задания и хорошую реализацию - начисляем бонус - 3 балла
    Итого: 21 балл

Проверка РГР №1 (этап 3: таблица-генератор) от 30.05.2021

image
image

Пример взят из контрольной работы по LL(1)-грамматике, 1-ый пример

  • При пересечении направляющих символов у двух и более альтернатив у одного правила (здесь это правило R0), грамматика становится не LL(1). Также результат работы бегунка становится неопределённым, так как в зависимости от построения таблицы, бегунок может "угадать" нужную строку, а может и нет. Прелесть LL(1)- разбора в том, что мы по 1-му символу во входной цепочке сразу знаем по какому правилу нам нужно идти. При возникновении ситуации пересечения направляющих множеств следует выдать пользователю ошибку, а не строить таблицу с бегунком. Также следует реализовать автоматическую проверку на пересечение множеств перед постройкой таблицы и бегунка

  • Этап 3 РГР № 1 принят: 17 баллов из 20 (30.05.2021)
    Возможно повышение баллов, за работу, если будут исправлены все замечания, приведённые выше, все тесты пройдут, и не возникнет новых замечаний
    Также за своевременное выполнение задания и хорошую реализацию - начисляем бонус - 2 балла
    Итого: 19 баллов

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.