Системное программное обеспечение. Лабораторный практикум - страница 33

Шрифт
Интервал


Длину идентификаторов и строковых констант можно считать ограниченной 32 символами. Программа должна допускать наличие комментариев неограниченной длины во входном файле. Форму организации комментариев предлагается выбрать самостоятельно.

Лабораторная работа должна выполняться в следующем порядке:

1. Получить вариант задания у преподавателя.

2. Построить описание КА, лежащего в основе лексического анализатора (в виде набора множеств и функции переходов или в виде графа переходов).

3. Подготовить и защитить отчет.

4. Написать и отладить программу на ЭВМ.

5. Сдать работающую программу преподавателю.

Требования к оформлению отчета

Отчет должен содержать следующие разделы:

• Задание по лабораторной работе.

• Описание КС-грамматики входного языка в форме Бэкуса—Наура.

• Описание алгоритма работы сканера или граф переходов КА для распознавания цепочек (в соответствии с вариантом задания).

• Текст программы (оформляется после выполнения программы на ЭВМ).

• Выводы по проделанной работе.

Основные контрольные вопросы

• Что такое трансляция, компиляция, транслятор, компилятор?

• Из каких процессов состоит компиляция? Расскажите об общей структуре компилятора.

• Какую роль выполняет лексический анализ в процессе компиляции?

• Что такое лексема? Расскажите, какие типы лексем существуют в языках программирования.

• Как могут быть связаны между собой лексический и синтаксический анализ?

• Какие проблемы могут возникать при определении границ лексем в процессе лексического анализа? Как решаются эти проблемы?

• Что такое таблица лексем? Какая информация хранится в таблице лексем?

• В чем разница между таблицей лексем и таблицей идентификаторов?

• Что такое грамматика? Дайте определения грамматики. Как выглядит описание грамматики в форме Бэкуса—Наура.

• Какие классы грамматик существуют? Что такое регулярные грамматики?

• Что такое конечный автомат? Дайте определение детерминированного и недетерминированного конечных автоматов.

• Опишите алгоритм преобразования недетерминированного конечного автомата в детерминированный.

• Какие проблемы необходимо решить при построении сканера на основе конечного автомата?

• Объясните общий алгоритм функционирования лексического анализатора.

Варианты заданий

1. Входной язык содержит арифметические выражения, разделенные символом; (точка с запятой). Арифметические выражения состоят из идентификаторов, десятичных чисел с плавающей точкой (в обычной и логарифмической форме), знака присваивания (:=), знаков операций +, —, *, / и круглых скобок.