Лист 1. Структурная модель

1. Назначение
Представляет структурную модель программа распознавания строк вложенных символов (например, скобок).

2. Перечень блоков
EntranceType (ET) – ввод/ выдача символов; FilterSymbol (FL) – фильтр потока поступающих на его вход символов; PushDown (PD) – лексический блок, реализующий заданную грамматику (конкретно - автомат с магазинной памятью (АМП)); ViewDebug (VD) – вывод отладочной информации; ViewError (VE) – интерпретация кода ошибок; ViewTape (VT) – отображает строку символов; ViewStates – отображает текущие внутренние состояния блоков модели.

3. Функционирование модели
Блок ET вводит символы и проводит их предварительный анализ, где, например, символ ESC – окончание работы, END – переход к новой строке. При этом ввод новых символов происходит только при готовности блока FL. Введенные символы поступают с выхода ET на вход FL, который пропускает только символы из заданного множества. Прошедшие фильтрацию символы поступают в блок PD, который интерпретирует входящий поток в соответствии с реализуемой им грамматикой. При этом, приняв символ, PD сразу сообщает об этом FL, который в свою очередь информирует об окончании цикла ввода блок ET, разрешая ему приступить к вводу очередного символа.
По сути, остальные блоки – вспомогательные. Так, блоки VD и VE отображают состояние и контролируют работу блока PD. Блок VD отображает текущую информацию о состоянии разбора входной последовательности символов, а блок VE отображает информацию об возникающих в процессе разбора ошибках и символе, который эту ошибку спровоцировал. Блок VT отображает строку правильно введенных символов и то же самое делает в любой момент при вводе команды-символа «=». Блок VS отображает текущие внутренние состояния остальных блоков модели, что необходимо, например, в целях отладки приложения.