Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SPO_shpory.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.65 Mб
Скачать

58. Организация прямого л/а

Строится на основе первого детерминированного автомата, объединяя множество автоматов, распознающих отдельные лексемы. Он читает 1 входной символ и переходит в следующее состояние, приближая его к следующей лексеме. Для лексем имеющих одинаковые подцепочки, автомат имеет общие фрагменты, реализующие единое множество состояний. Отличающиеся части реализуются своими фрагментами. Структура на рис. 4.10.

Прямой л/а содержит входную головку, кот. передает текущий символ в первое состояние одному из блоков, реализующих алгоритм. Разбиение на фрагменты проводится на основе выделений состояний, специализирующихся на распознавании общих или части цепочек отдельных лексем. В самом общем случае л/а может рассматриваться как единый неструктурированный блок. Поэтому его деление на отдельные части условное. Очередной символ читается каждым состоянием автомата. В каждом фрагменте условно можно выделить начальное состояние, с кот. начинается разбор по цепочке, закрепленной за данным фрагментом. Если символ не входит в группу начально распознаваемого фрагмента, то отказ и передача управления начальному состоянию др. входного фрагмента, кот. анализирует др. входную цепочку. Результат разбора – лексема или ошибка.

Достоинства:

  1. Высокая производительность за счет отсутствия возврата входной головки.

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

Недостатки:

  1. На разработку требуется больше времени

  2. Невозможно реализовать для некоторых языков программирования.

59. Общие принципы организации синтаксического разбора. Назначение, классификация методов синтаксического разбора.

Синтаксический разбор (с/р) явл. первым этапом с/а. Именно при его выполнении осуществляется подтверждение того, что входная цепочка символов явл. программой, а отдельные подцепочки составляют синтаксически правильные программные объекты. Вслед за распознаванием отдельных подцепочек осуществляется анализ их семантической корректности на основе накопленной информации. Затем проводится добавление новых объектов в объектную модель или в промежуточное представление. Разбор предназначен для доказательства того, что анализируемая входная цепочка, записанная на входной ленте принадлежит или не принадлежит множеству цепочек порождаемой грамматикой данного языка. При выполнении с/р осуществляемое распознавание- автомат. Поэтому данный процесс называют распознавание входной цепочки. Цель доказательства в том, чтобы ответить на вопрос: принадлежит ли данная цепочка множеству правильных цепочек заданного языка? Чтобы получить ответ да относительно каждой цепочки и след для каждого правила след осуществить разбор каждой цепочки. Т.к. множество правил образует иерархическую структуру, то процесс получения общего положительного ответа можно интерпретировать как сбор по определенному типу ответов для листьев лежащих в основе дерева разбора. Далее анализируются узлы. Полученный ответ складывается в конечный ответ для нового узла.

Классификация методов с/р

  1. Методы разбора: нисходящий., восходящий, комбинированный (сочетает особенности 2-ух предыдущих).

  2. Последовательность разбора: слева направо, справа налево, произвольный.

  3. Просмотр вперед: на 1 символ, ... , на n символов.

  4. Использование возвратов: есть, нет.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]