KURSOVIK.COM

ТЯПиМТ Теория языков программирования и методы трансляции. ЛР1 Вариант 4. На вход программы подается единственная строка символов. Данная строка задает присваивание переменной значения арифметического выражения в виде ПЕРЕМЕННАЯ = ВЫРАЖЕНИЕ. ЛР2 Вариант 4. На вход программы подается описание структур (записей) на выбранном языке (Pascal, C++, C#), а также описание LR(1)-грамматики. Необходимо проверить, является ли описание структур/записей корректным с точки зрения заданной грамматики и не содержатся ли в нем конфликты имен

Лабораторная работа
в среде программирования Visual C++ .NET 2019



Если Вы считаете, что данная страница каким-либо образом нарушает Ваши авторские права, то Вам следует обратиться в администрацию нашего сайта по адресу info@kursovik.com либо через форму обратной связи

Среда программирования: Visual C++ .NET 2019

Название работы: ТЯПиМТ Теория языков программирования и методы трансляции. ЛР1 Вариант 4. На вход программы подается единственная строка символов. Данная строка задает присваивание переменной значения арифметического выражения в виде ПЕРЕМЕННАЯ = ВЫРАЖЕНИЕ. ЛР2 Вариант 4. На вход программы подается описание структур (записей) на выбранном языке (Pascal, C++, C#), а также описание LR(1)-грамматики. Необходимо проверить, является ли описание структур/записей корректным с точки зрения заданной грамматики и не содержатся ли в нем конфликты имен

Вид работы: Лабораторная работа

Описание: ТЯПиМТ Теория языков программирования и методы трансляции.

Лабораторная работа №1
Тема задания: «Синтаксический анализ с использованием конечных автоматов и регулярных выражений».
Цель: научиться применять на практике такие средства синтаксического анализа, как детерминированные конечные автоматы (ДКА), ДКА с магазинной памятью (ДМПА) и регулярные выражения (РВ).
Написанная программа должна читать входные данные из текстового файла (например, имеющего имя «input.txt») и выдавать результат работы в текстовый файл (например, имеющий имя «output.txt»).
Для ввода и вывода данных допускается использование в программе визуального интерфейса вместо файлового ввода/вывода.

Вариант 4. На вход программы подается единственная строка символов. Данная строка задает присваивание переменной значения арифметического выражения в виде
ПЕРЕМЕННАЯ = ВЫРАЖЕНИЕ.
Выражение может включать:
– знаки сложения и умножения («+» и «*»);
– круглые скобки («(» и «)»);
– константы (например, 5; 3.8; 1e+18, 8.41E-10);
– имена переменных (последовательности букв и цифр, начинающиеся с буквы).
Программа должна с помощью регулярного выражения построить дерево, соответствующее заданному во входном файле выражению, и вы-дать для данного выражения:
1) таблицу имен;
2) неоптимизированный код;
3) оптимизированный код.

Лабораторная работа №2
Тема задания: «Синтаксический анализ с использованием КС-грамматик».
Цель: научиться применять на практике такие средства синтаксического анализа, как контекстно-свободные грамматики (КС-грамматики).
Написанная программа должна читать входные данные и описание грамматики из текстовых файлов (например, имеющих имена «input.txt» и «grammar.txt» соответственно) и выдавать результат работы в текстовый файл (например, имеющий имя «output.txt»).
Для ввода и вывода данных допускается использование в программе визуального интерфейса вместо файлового ввода/вывода.

Вариант 4. На вход программы подается описание структур (записей) на выбранном языке (Pascal, C++, C#), а также описание LR(1)-грамматики.
Необходимо проверить, является ли описание структур/записей корректным с точки зрения заданной грамматики и не содержатся ли в нем конфликты имен.
Таким образом, задание разбивается на две части:
1. Проверка синтаксиса.
2. Проверка семантики.
Семантика зависит от выбранного языка, и поэтому ее проверка жестко привязана к анализатору (в данном случае – вашей программе). Грамматика же должна быть универсальной, т. е. должна позволять задавать любые правила для разбора структур/записей (и не только). Например, должны быть доступны изменения: ключевых слов, знаков пунктуации, правил разбора идентификаторов, а также добавление новых языковых конструкций и т. п.
Программа должна проанализировать имеющееся описание структур/записей и выдать результат проверки. Это может быть:
1. Сообщение о том, что грамматика во входном файле не является LR(1)-грамматикой.
2. Сообщение о том, что описание корректное.
3. Сообщение о синтаксической ошибке. Указывать тип ошибки не обязательно, требуется только указать строку и позицию в строке входного файла, где наблюдается ошибка. Достаточно находить только первую ошибку в описании.
4. Сообщение о конфликте имен. В этом случае на выходе программы необходимо указать конфликтующее имя, а также строку и позицию в строке, где произошел конфликт.
Кроме того, программа может быть написана на одном языке, но проверять правильность описания записей, структур и т. п. для другого языка.

ТЕКСТОВАЯ ЧАСТЬ
Отчет по каждой контрольной или лабораторной работе должен включать следующие элементы:
1. Титульный лист. Образцы оформления титульного листа приведены в приложениях А и Б.
2. Оглавление. В оглавлении должны быть приведены заголовки всех разделов документа (вплоть до второго или третьего уровня) с указанием номеров страниц.
3. Задание на контрольную или лабораторную работу. Задание должно быть полным, т. е. включать общую часть задания, индивидуальное задание согласно варианту, а также описание входных и выходных данных программы.
4. Краткую теорию. В краткой теории необходимо описать синтаксис и семантику анализируемого программой языка, а также все реализуемые в программе алгоритмы.
5. Результаты работы. В результаты работы включается формальное описание построенных синтаксических анализаторов, а также результаты тестовых прогонов программы.
6. Заключение (выводы). Здесь формулируются выводы по полученным результатам работы.
7. Список использованных источников. На приведенные источники в тексте документа должны быть расставлены ссылки.
8. Приложения (например, листинги программ и т. п.).
В целом отчет по контрольной или лабораторной работе должен быть оформлен согласно требованиям актуальной версии образовательного стандарта ОС ТУСУР для специальностей технического профиля. В настоящее время это стандарт ОС ТУСУР 01–2013 [7].

Год: 2020

<<< Назад к списку

Данный заказ (лабораторная работа) выполнялся нашим сайтом в 2020-м году, в рамках этого заказа была разработана программа в среде программирования Visual C++ .NET 2019. Если у Вас похожее задание на программу, которую нужно написать на Visual C++ .NET 2019, либо на другом языке программирования, пожалуйста заполните форму, приведённую ниже, после чего Ваше задание в первую очередь рассмотрит наш программист, выполнявший в 2020-м году этот заказ, если он откажется, то Ваше задание оценят другие наши программисты в течение 48-и часов, если оценка нужна срочно, просим Вас оставить пометку об этом - напишите в тексте задания фразу "СРОЧНЫЙ ЗАКАЗ".

Купить эту работу

MAX: max.ru/u/f9...k6B1ek
Telegram: kursovikcom
ВКонтакте: kursovikcom
WhatsApp: +79374242235
Viber: +79374242235
imo: +79374242235
bip: +79374242235
E-mail: info@kursovik.com