Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Синтаксический анализитор.doc
Скачиваний:
8
Добавлен:
19.11.2019
Размер:
385.54 Кб
Скачать

3. Порядок выполнения работы

  1. Построить синтаксические диаграммы для заданной конструкции.

  2. Запрограммировать синтаксический анализатор методом рекурсивного спуска. Анализатор должен либо сообщать о том, что конструкция записана верно, либо выдавать сообщение об ошибке с указанием места ее обнаружения.

  3. Построить синтаксическую таблицу и реализовать табличный LL(1) – анализатор.

  4. Дополнить анализаторы семантическими процедурами, выполняющими содержательную обработку.

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

  1. Арифметическое выражение. Элементами выражения являются имена переменных, вещественные числа, функции (названия функций произвольные), знаки арифметических операций, круглые скобки. Вычислить выражение.

  2. Сумма – последовательность натуральных чисел и имен, разделенных знаками плюс и минус. Возможен знак перед первым слагаемым. Считая, что имена обозначают неизвестные запросить у пользователя их значения и вычислить сумму. Значение одной и той же переменной, встречающейся в выражении больше одного раза, должно запрашиваться только один раз.

  3. Сумма вещественных чисел. Вычислить сумму.

  4. Квадратное уравнение с целыми коэффициентами. Найти корни уравнения.

  5. Сумма обыкновенных дробей. Вычислить сумму.

  6. Произведение вида , где - целые числа. Программа запрашивает значение X и вычисляет произведение.

  7. Мультипликативная функция переменных: , где - целая константа; - имена. Программа запрашивает вещественные значения входящих в выражение переменных и вычисляет значение функции. Значение каждой переменной вводится лишь однажды.

  8. Сумма произведений – последовательность слагаемых, представляющих собой произведение нескольких операндов. Операнды – имена. Программа запрашивает вещественные значения, входящих в выражение переменных и вычисляет значение суммы. Значение каждой переменной вводится лишь однажды.

  9. Последовательность, записанных через запятую элементов двухмерных массивов. Индексы – натуральные числа. Считается, что все массивы имеют размер 10*10, программа проверяет корректность задания индексов и формирует текст программы на Паскале, которая заполняет все массивы, имена которых встретились в выражении, случайными целыми числами; элементам, встретившимся в выражении должны быть присвоены нулевые значения. Сгенерированная программа должна распечатывать содержимое всех этих массивов.

  10. Числовой ряд вида , где - натуральные числа. Вычислить точную сумму ряда. Результат представить в виде обыкновенной дроби.

  11. Отношение Операнд Операнд, где Операнд – целое или имя; - знак отношения (<, >, =, <>, >=, <=). Полагая, что имена – это идентификаторы целочисленных переменных, программа запрашивает их значения и проверяет истинность отношения.

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