Датчик дерева
В теоретической информатике и теории формального языка преобразователь деревьев (TT) — это абстрактная машина, принимающая в качестве входных данных дерево и генерирующая выходные данные — обычно другие деревья, но существуют модели, производящие слова или другие структуры. Грубо говоря, преобразователи деревьев расширяют древесные автоматы таким же образом, как преобразователи слов расширяют автоматы слов .
Манипулирование древовидными структурами вместо слов позволяет TT моделировать синтаксически-ориентированные преобразования формальных или естественных языков. Однако TT не так хороши, как их словесные аналоги, с точки зрения алгоритмической сложности , свойств замыкания и т. д. В частности, большинство основных классов не закрыты по композиции .
Основными классами преобразователей деревьев являются:
Древовидные преобразователи сверху вниз (TOP)
[ редактировать ]TOP T — это кортеж ( Q , Σ, Γ, I , δ ) такой, что:
- Q — конечное множество , множество состояний ;
- Σ — алфавит конечного ранга , называемый входным алфавитом ;
- Γ — алфавит конечного ранга, называемый выходным алфавитом ;
- I — подмножество Q ; множество начальных состояний , и
- δ — набор правил вида , где f — символ Σ, n — арность f , q — состояние, u — дерево на Γ и , такие пары являются нулевыми .
Примеры правил и интуиций по семантике
[ редактировать ]Например,
это правило – принято писать вместо пары – и его интуитивная семантика заключается в том, что под действием q дерево с f в корне и тремя детьми преобразуется в
где рекурсивно и заменяются соответственно применением о первом ребенке и с применением на третьем.
Семантика как переписывание терминов
[ редактировать ]Семантика бинарное каждого состояния преобразователя T и самого T представляет собой отношение между входными деревьями (на Σ) и выходными деревьями (на Γ).
Способ формального определения семантики состоит в том, чтобы увидеть как система переписывания терминов , при условии, что в правых частях вызовы записаны в виде , где состояния q — унарные символы. Тогда семантика состояния q определяется выражением
Семантика T тогда определяется как объединение семантики его начальных состояний:
Детерминизм и область
[ редактировать ]Как и в случае с древовидными автоматами, TOP называется детерминированным (сокращенно DTOP ), если никакие два правила δ не имеют одной и той же левой части и существует не более одного начального состояния. В этом случае семантика DTOP является частичной функцией от входных деревьев (на Σ) до выходных деревьев (на Γ), как и семантика каждого из состояний DTOP.
Область область преобразователя — это его семантики. Аналогично, образ преобразователя — это образ его семантики.
Свойства ДТОП
[ редактировать ]- DTOP не закрываются при объединении : это уже относится к детерминированным преобразователям слов.
- Областью применения DTOP является обычный древовидный язык . Кроме того, домен можно распознать по детерминированному нисходящему древовидному автомату (DTTA), размер которого не превышает экспоненциального размера исходного DTOP. [1]
- То, что домен распознается DTTA, неудивительно, учитывая, что левые части правил DTOP такие же, как и для DTTA. Что касается причины экспоненциального взрыва в худшем случае (которой не существует в словесном случае), рассмотрим правило . Чтобы вычисление завершилось успешно, оно должно быть успешным для обоих дочерних элементов. Это означает, что правильный ребенок должен находиться в области . Что касается левого дочернего элемента, он должен находиться в домене обоих и . Как правило, поскольку поддеревья можно копировать, одно поддерево может оцениваться в нескольких состояниях во время выполнения, несмотря на детерминизм и в отличие от DTTA. Таким образом, конструкция DTTA, распознающая область DTOP, должна учитывать наборы состояний и вычислять пересечения их областей, следовательно, экспоненциальную функцию. В частном случае линейного DTOP, то есть DTOP, где каждый появляется не более одного раза в правой части каждого правила, конструкция линейна во времени и пространстве.
- Образ DTOP не является обычным древовидным языком.
- Рассмотрим преобразователь, кодирующий преобразование ; то есть дублировать дочерний элемент ввода. Это легко сделать по правилу , где p кодирует личность . Тогда, при отсутствии каких-либо ограничений на первый дочерний элемент входных данных, изображение представляет собой классический нерегулярный древовидный язык.
- Однако область применения DTOP не может быть ограничена обычным древовидным языком. То есть, имея DTOP T и язык L , вообще невозможно построить DTOP. такая, что семантика это T , ограниченный L.
- Это свойство связано с причиной, по которой детерминированные нисходящие древовидные автоматы менее выразительны, чем восходящие автоматы: как только вы идете по заданному пути, информация из других путей становится недоступной. Рассмотрим преобразователь, кодирующий преобразование ; то есть вывести правый дочерний элемент ввода. Это легко сделать по правилу , где p кодирует личность. Теперь предположим, что мы хотим ограничить этот преобразователь конечной (и, следовательно, в частности, регулярной) областью. . Мы должны использовать правила . Но в первом правиле вообще не появляется, так как из левого дочернего элемента ничего не производится. Таким образом, невозможно проверить, что левый дочерний элемент — c . Напротив, поскольку мы производим результат от правильного дочернего элемента, мы можем проверить, является ли он a или b . В общем, критерием является то, что DTOP не может проверять свойства поддеревьев, из которых они не производят выходные данные.
- DTOP не закрыты по композиции . Однако эту проблему можно решить, добавив функцию просмотра вперед : древовидный автомат, связанный с преобразователем, который может выполнять тесты в области , на которые преобразователь не способен. [2]
- Это следует из пункта об ограничении домена: составление идентификатора кодировки DTOP на с одной кодировкой должен дать преобразователь с семантикой , который, как мы знаем, не выражается с помощью DTOP.
- Проблема проверки типов — проверка того, включен ли образ регулярного древовидного языка в другой регулярный древовидный язык — разрешима.
- Проблема эквивалентности — проверка того, определяют ли два DTOP одни и те же функции — разрешима. [3]
Преобразователи дерева снизу вверх (BOT)
[ редактировать ]Как и в более простом случае древесных автоматов, преобразователи дерева снизу вверх определяются аналогично их аналогам сверху вниз, но действуют от листьев дерева к корню, а не от корня к листьям. Таким образом, основное различие заключается в форме правил, которые имеют вид .
Ссылки
[ редактировать ]- Комон, Хьюберт; Доше, Макс; Жилерон, Реми; Жакмар, Флоран; Лужье, Денис; Лёдинг, Кристоф; Тисон, Софи; Томмаси, Марк (ноябрь 2008 г.). «Глава 6: Преобразователи деревьев» . Техники и приложения древовидных автоматов . Проверено 11 февраля 2014 г.
- Хосоя, Харуо (4 ноября 2010 г.). Основы обработки XML: подход «дерево-автомат» . Издательство Кембриджского университета. ISBN 978-1-139-49236-2 .
- ^ Бейкер, Б.С.: Состав преобразований дерева сверху вниз и снизу вверх. Инф. Контроль 41(2), 186–213 (1979)
- ^ Манет, Себастьян (декабрь 2015 г.). «Обзор разрешимых проблем эквивалентности для преобразователей деревьев» (PDF) . Международный журнал основ компьютерных наук . 26 (8): 1069–1100. дои : 10.1142/S0129054115400134 . hdl : 20.500.11820/2f1acef4-1b06-485f-bfd1-88636c9e2fe6 .
- ^ «Результаты разрешимости относительно древовидных преобразователей I» . www.inf.u-szeged.hu .