ПО, ЭВМ и АСУ из Таможенного Союза

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » ПО, ЭВМ и АСУ из Таможенного Союза » контекстно-свободные грамматики » 2022, Ю. Д. Рязанов & С. В. Назина


2022, Ю. Д. Рязанов & С. В. Назина

Сообщений 1 страница 2 из 2

1

2022, Ю. Д. Рязанов & С. В. Назина, Построение синтаксических анализаторов на основе синтаксических диаграмм с многовходовыми компонентами
https://www.mathnet.ru/links/6608c26472 … pdm764.pdf
(Белгородский государственный технологический университет им. В. Г. Шухова, г. Белгород, Россия)

Они разобрались и используют
Graph Structured Stack (GSS) (Стек с графовой структурой (СГС))
Shared Packed Parse Forest (SPPF) (Компактное представления леса разбора (КПЛР))

Отредактировано Лис (2023-03-07 21:23:21)

0

2

СД - синтаксические диаграммы
дерево вывода
стек с графовой структурой
лес разбора
   Множество всех деревьев вывода заданной цепочки в неоднозначной грамматике образует лес разбора
компактное представление леса разбора (КПЛР)
    три типа узлов: символьные, промежуточные и упаковывающие
    Если лес разбора представляет собой конечное множество деревьев вывода, то КПЛР не содержит циклов.
дескриптор синтаксического анализатора

---

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

(нужен пример такой грамматики,
пример одной цепочки, с выводами проходящими через узел "У",
а так же пример бесконечного множества различных выводов этой цепочки)

---

Символьные узлы имеют вид (тинук, л, п), где
"тинук" терминал или начальный узел компоненты;
"л" и "п" - левая и правая границы подцепочки, выводимой из "тинук".
Если "тинук" - терминал, то назовём такой узел терминальным, иначе - нетерминальным.

Промежуточные узлы имеют метку (нук → ук, л, п), где
"нук" - начальный узел компоненты;
"ук" - узел компоненты;
"л" и "п" - левая и правая границы подцепочки, выводимой на промежутке движения от узла "нук" к узлу "ук".

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

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

---

получение всех деревьев вывода по КПЛР, не содержащему циклов
(а зачем эти деревья получать, кроме того, чтобы убедиться, что их больше одного?)

0


Вы здесь » ПО, ЭВМ и АСУ из Таможенного Союза » контекстно-свободные грамматики » 2022, Ю. Д. Рязанов & С. В. Назина