Создан заказ №5918766
3 февраля 2021
Теория автоматов и формальных языков. Синтаксический анализ
Как заказчик описал требования к работе:
Программирование. Синтаксический анализ
Синтаксический анализ с использованием конечных автоматов, регулярных выражений и КС-грамматик
Задание №1
На вход программы подается единственная строка символов. Данная строка задает присваивание переменной значения арифметического выражения в виде
ПЕРЕМЕН
НАЯ = ВЫРАЖЕНИЕ.
Выражение может включать:
– знаки сложения и умножения («+» и «*»);
– круглые скобки («(» и «)»);
– константы (например, 5; 3.8; 1e+18, 8.41E-10);
– имена переменных (последовательности букв и цифр, начинающиеся с буквы).
Программа должна с помощью регулярного выражения построить
дерево, соответствующее заданному во входном файле выражению, и выдать для данного выражения:
1) таблицу имен;
2) неоптимизированный код;
3) оптимизированный код.
Задание №2
На вход программы подается описание структур (записей)
на выбранном языке (Pascal, C++, C#), а также описание LR(1)-грамматики.
Необходимо проверить, является ли описание структур/записей корректным с точки зрения заданной грамматики и не содержатся ли в нем конфликты имен.
Таким образом, задание разбивается на две части:
1. Проверка синтаксиса.
2. Проверка семантики.
Семантика зависит от выбранного языка, и поэтому ее проверка жестко привязана к анализатору (в данном случае – вашей программе).
Грамматика же должна быть универсальной, т. е. должна позволять задавать любые правила для разбора структур/записей (и не только). Например, должны быть доступны изменения: ключевых слов, знаков пунктуации, правил разбора идентификаторов, а также добавление новых языковых конструкций и т. п.
Программа должна проанализировать имеющееся описание структур/записей и выдать результат проверки. Это может быть:
1. Сообщение о том, что грамматика во входном файле не является LR(1)-грамматикой.
2. Сообщение о том, что описание корректное.
3. Сообщение о синтаксической ошибке. Указывать тип ошибки не обязательно, требуется только указать строку и позицию в строке входного файла, где наблюдается ошибка. Достаточно находить только первую ошибку в описании.
4. Сообщение о конфликте имен. В этом случае на выходе программы необходимо указать конфликтующее имя, а также строку и позицию в строке, где произошел конфликт.
Кроме того, программа может быть написана на одном языке, но проверять правильность описания записей, структур и т. п. для другого языка.
Реализация программы частично имеется.
Требуется завершить реализацию и оформить пояснительную записку.
Подробности по телефону
__________________________
Все прошлые рецензии
Microsoft Word
[2040-R2598] Лебедев С.Н. - Рецензия КР(2) (11.04.20).doc
Microsoft Word
[2061-R2630] Лебедев С.Н. - Рецензия КР(4) (15.05.20).doc
Microsoft Word
[2072-R2646] Лебедев С.Н. - Рецензия КР(5) (09.06.20).doc
Microsoft Word
[2112-R2699] Лебедев С.Н. - Рецензия КР(6) (24.09.20).do
подробнее
Заказчик
заплатил
заплатил
100 ₽
Заказчик не использовал рассрочку
Гарантия сервиса
Автор24
Автор24
20 дней
Заказчик принял работу без использования гарантии
4 февраля 2021
Заказ завершен, заказчик получил финальный файл с работой
5
Теория автоматов и формальных языков. Синтаксический анализ.docx
2021-02-07 19:09
Последний отзыв студента о бирже Автор24
Общая оценка
5
Положительно
Автор -человек слова и дела ! Профессионал в своей области. Однозначно рекомендую !!!