ФДО ТУСУР Теория языков программирования и методы трансляции 4 вариант 2 лабораторные работы

Раздел
Программирование
Просмотров
44
Покупок
0
Антиплагиат
Не указан
Размещена
16 Авг в 13:40
ВУЗ
ТУСУР
Курс
4 курс
Стоимость
2 000 ₽
Демо-файлы   
3
pdf
ОС ТУСУР 01-2021 (1) (3)
1.2 Мбайт
pdf
view-file (14) (2)
2.1 Мбайт
pdf
view-file (15) (2)
4 Мбайт
Файлы работы   
2
Каждая работа проверяется на плагиат, на момент публикации уникальность составляет не менее 40% по системе проверки eTXT.
zip
Лабораторная работа 1
92.2 Кбайт 1 000 ₽
zip
Лабораторная работа 2
174.6 Кбайт 1 000 ₽
Всего 2 файла на сумму 2000 рублей
Описание

1 лабораторная

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

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

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

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

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

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

-      имена переменных.

        Имя переменной — это последовательность букв и цифр, начинающаяся с буквы.

        Программа должна с помощью регулярного выражения построить дерево, соответствующее заданному во входном файле выражению, и выдать (в текстовый файл OUTPUT.TXT) для данного выражения:

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

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

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


2 лабораторная

На вход программы подаются два текстовых файла (с именами GRAMMAR.TXT и INPUT.TXT). Первый содержит LR(1)-грамматику, второй — описание структуры (записи) на выбранном языке (Pascal, C++, C#). Необходимо проверить, является ли описание структуры корректным с точки зрения заданной грамматики и не содержатся ли в нем конфликты имен.

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

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

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

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

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

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

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

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

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

Вам подходит эта работа?
Похожие работы
Другие работы автора
Темы журнала
Показать ещё
Прямой эфир