Зарегистрироваться
Восстановить пароль
FAQ по входу

Отложенные вычисления и ленивые списки в Лиспе. Нисходящий разбор по заданной LL(1)-грамматике

  • Файл формата zip
  • размером 776,61 КБ
  • содержит документы форматов archive image pdf txt
  • Добавлен пользователем , дата добавления неизвестна
  • Описание отредактировано
Отложенные вычисления и ленивые списки в Лиспе. Нисходящий разбор по заданной LL(1)-грамматике
Задача:
Написать программу, эмулирующую поведение детерминированного МП-автомата, составленного по заданной LL(1)-грамматике. Проверку принадлежности
строки языку выполнить в виде поиска допускающего состояния в истории вычислений автомата. Историю вычислений реализовать в виде отложенного списка, то есть
не допускается одновременное хранение в памяти всех промежуточных состояний автомата.
Теория:
Нисходящий синтаксический анализ осуществляется автоматом с магазинной памятью (МП-автоматом). В начале работы МП-автомата в стек помещается стартовый нетерминал.
Далее автомат недетерменировано заменяет нетерминалы в стеке на правые части соответствующих продукций, а терминалы снимает с вершины стека вместе с чтением их из входной строки. Строка допускается, если по окончании чтения строки стек пуст.
Недетерминизм на практике реализуется сложно, поэтому там, где это возможно, грамматики приводятся к специальной форме, позволяющей от него избавиться. Одна из таких форм LL(1). Первая L означаетчтение входной строки слева направо, вторая L получение левого порождения, а 1 использование на каждом шаге препросмотра одного символа для принятия решения о действиях автомата
Работа выполнена на языках
* Lisp (Sheme)
* Python (можно на C++, c "функциональным" использованием шаблонов)
Методичка в формате — PDF & MS Word
Отчет в формате — PDF
Исходники отчета — LaTeX2e
МАИ.
Факультет прикладной математики.
Кафедра вычислительной математики и программирования.
Преподаватели:
Алексей AVL Лебедев
Илья US-Marine Перетягин
  • Чтобы скачать этот файл зарегистрируйтесь и/или войдите на сайт используя форму сверху.
  • Регистрация