10.5. ПРОГРАММНЫЕ ПРЕДСТАВЛЕНИЯ ГРАФА СОСТОЯНИЙ
617
структуру (
Prolog
), но в обоих случаях контекст, определяющий выполнение
команд, и замена данных путем порождения результатов команд остаются.
Вполне закономерна тенденция, прослеживающаяся в развитии языков раз-
метки, отделять распознавание структуры текста — сентенциальная часть
обработки — от использования этой структуры для задания действий, кото-
рые определяют обобщенные вычисления.
11
Обзор языков разметки с точки зрения выделения обобщенных вычисле-
ний естественно поместить в более позднюю главу, посвященную сентенци-
альному программированию, поскольку и вычисления, и структуры, задан-
ные этими языками, естественно соотносятся в первую очередь с методами
сентенциального программирования. Но, как можно было предполагать уже
после знакомства с синтаксическими таблицами, некоторые из аспектов об-
работки структурированных текстов и обобщенных вычислений над ними
естественно обсудить именно в связи с автоматами и методами программи-
рования от состояний. Поэтому ниже описывается конкретное решение за-
дачи автоматической трансформации таблиц конечного автомата с использо-
ванием наиболее подходящего для этих целей языка
XML
(см. книгу [55] и
§13.3.2).
12
10.5.3. Автоматное преобразование структурированных текстов
Если описывать тексты в современных языках разметки, типа L
A
T
E
X [43]
или
XML
то возникает задача описывать и программировать преобразования
таких текстов. Пакеты здесь являются паллиативом, и на самом деле решени-
ями являются специализированные языки преобразований текстов либо со-
ответствующие методики программирования, поддержанные автоматизиро-
ванным преобразованием спецификаций в программу. Здесь мы рассмотрим
методику, базирующуюся на автоматах.
Применим возможности системы
XML/XSL
к нашей конкретной задаче:
описание конечного автомата.
Программа 10.5.1
11
Как мы уже имели возможность убедиться (см., например, § 3.5 и 3.6), тенденция отде-
ления распознавания от обработки характерна и для других стилей программирования. Но
для сентенциального стиля она оказывается решающей.
12
То, что мы ссылаемся на более поздний параграф, — осознанное решение. В технических
руководствах Вам все равно предстоит научиться заглядывать вперед, чтобы понять интере-
сующее Вас место. Чтение книги как последовательного файла — слишком часто наименее
эффективный метод ее изучения.