Теория языков программирования и методы трансляции

Выполнен
Заказ
4910285
Раздел
Программирование
Антиплагиат
70%
Антиплагиат.РУ (модуль - Интернет Free)eTXT
Срок сдачи
10 Фев 2023 в 23:55
Цена
10 000 ₽
Блокировка
10 дней
Размещен
16 Янв 2023 в 20:19
Просмотров
844
Описание работы

Под ключ по требованиям из методички. Вариант 2

С возможностью правок замечаний.

При выполнении использование C#

Лабораторные работы:

Необходимо полную версию программного проекта, включающего все исходные файлы, исполняемый файл, а также образцы входных и выходных файлов.

По итогам выполнения контрольной работы оформляется отчет. Правила его оформления описаны в разделе 4.

Написанная программа должна читать входные данные из текстового файла (например, имеющего имя «input.txt») и выдавать результат работы в текстовый файл (например, имеющий имя «output.txt»).

Для ввода и вывода данных допускается использование в программе визуального интерфейса вместо файлового ввода/вывода.

Текстовая лабораторная работа № 1. Задание на лабораторную работу № 1.Тема задания: «Синтаксический анализ с использованием конечных автоматов и регулярных выражений».

На вход программы подается единственная строка символов. Данная строка задает присваивание переменной значения арифметического выражения в виде.

ПЕРЕМЕННАЯ = ВЫРАЖЕНИЕ.

Выражение может включать:

– знаки сложения и умножения («+» и «*»);

– круглые скобки («(» и «)»);

– константы (например, 5; 3.8; 1e+18, 8.41E-10);

– имена переменных (последовательности букв и цифр, начинающи-еся с буквы).

Программа должна с помощью ДКА или ДМПА построить дерево, соответствующее заданному во входном файле выражению, и выдать для данного выражения:

1) таблицу имен;

2) неоптимизированный код;

3) оптимизированный код.

Текстовая лабораторная работа № 2. Задание на лабораторную работу № 2. Тема задания: «Синтаксический анализ с использованием КС-грамматик».

На вход программы подается описание структур (записей) на выбранном языке (Pascal, C++, C#), а также описание LL(1)-грамматики. Необходимо проверить, является ли описание структур/записей корректным

с точки зрения заданной грамматики и не содержатся ли в нем конфликты имен.

Таким образом, задание разбивается на две части:

1. Проверка синтаксиса.

2. Проверка семантики.

Семантика зависит от выбранного языка, и поэтому ее проверка жестко привязана к анализатору (в данном случае – вашей программе). Грамматика же должна быть универсальной, т. е. должна позволять задавать любые правила для разбора структур/записей (и не только). Например, должны быть доступны изменения: ключевых слов, знаков пунктуации, пра-вил разбора идентификаторов, а также добавление новых языковых кон-струкций и т. п.

Программа должна проанализировать имеющееся описание струк-тур/записей и выдать результат проверки. Это может быть:

1. Сообщение о том, что грамматика во входном файле не является LL(1)-грамматикой.

2. Сообщение о том, что описание корректное.

3. Сообщение о синтаксической ошибке. Указывать тип ошибки не обязательно, требуется только указать строку и позицию в строке входного файла, где наблюдается ошибка. Достаточно находить только первую ошибку в описании.

4. Сообщение о конфликте имен. В этом случае на выходе программы необходимо указать конфликтующее имя, а также строку и пози-цию в строке, где произошел конфликт.

Кроме того, программа может быть написана на одном языке, но про-верять правильность описания записей, структур и т. п. для другого языка.

Нужна такая же работа?
  • Разместите заказ
  • Выберите исполнителя
  • Получите результат
Гарантия на работу1 год
Средний балл4.53
СтоимостьНазначаете сами
ЭкспертВыбираете сами
Уникальность работыот 70%
Время выполнения заказа:
76 дней 15 часов 9 минут
Выполнен
Нужна аналогичная работа?
Оформи быстрый заказ и узнай стоимость
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Прямой эфир