Домино Де Ремера

Де Ремер предложил наглядную интерпретацию задачи разбора, представив ее как игру в своеобразное домино. Играющий располагает "костями" домино нескольких типов. Типов столько, сколько правил в грамматике. Каждое правило дает один тип пластинки.

 

Считается, что костяшек каждого типа имеется сколько необходимо. Левой части правила грамматики, нижняя - правой. Верхняя и нижние пластинки соединены резиновыми нитями. Пластинки можно представлять друг другу плоскими сторонами полукруга, если на них записаны одинаковые символы. Фигуры домино нельзя переворачивать и нельзя менять порядок следования символов.

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

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

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

 

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

Hosted by uCoz