Parser Generator
Инструментарий для построения компиляторов.
   

Главная

О сайте

Документация

Download

Ссылки

Библиография

О нас


Требования, предъявляемые к системе

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

В этом разделе приводится список требований (requirements), которые должна реализовывать система. Также этот список можно рассматривать как список предоставляемых функций. Он помог нам определить границы нашей работы.

Требования к архитектуре системы

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

Возможность использование модулей системы из других программ.

Функциональные возможности

Формальные грамматики.

Работа с формальными грамматиками: ввод, отображение, сохранение, редактирование.

Преобразование формальных грамматик:

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

  • LL1
  • LR1
  • SLR0
  • предшествования
  • слабого предшествования
  • операторного предшествования
  • Распознаватели и преобразователи

    Создание, редактирование, моделирование следующих абстрактных устройств.

  • Детерминированный конечный распознаватель (конечный автомат).
  • Детерминированный конечный преобразователь.
  • Детерминированный распознаватель с магазинной памятью.
  • Детерминированный преобразователь с магазинной памятью.
  • ЛЛ1 грамматики. ЛЛ1 анализатор.

    Построение по ЛЛ1 грамматики управляющей таблицы для работы ЛЛ1 анализатора.

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

    Моделирование работы ЛЛ1 анализатора с возможностью пошаговой работы.

    Алгоритм "перенос-свертка". Грамматики предшествования.

    Построение матрицы предшествования для формальной грамматики. Построение функций переноса (f) и свертки (g) для грамматик:

  • Простого предшествования
  • Слабого предшествования
  • Операторного предшествования
  • Моделирование алгоритма переноса-свертки для грамматик предшествования с возможностью пошаговой работы.

    Алгоритмы анализа LR0, SLR1 языков.

    Построение по LR0 и SLR1 грамматикам управляющих таблиц для работы анализатора.

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

    Моделирование работы LR0 и SLR1 анализаторов с возможностью пошаговой работы.


     
       
    © С. Григорчук 2001, Содержание, дизайн

    ukman@yandex.ru
    Hosted by uCoz