Дерево вывода предложения (сентенции) грамматики. Синтаксическое дерево

Предыдущая статья: Хомски и его иерархия грамматик.

Посмотрите на следующую грамматику:

G = ({a, b}, {S, A, B}, {S → AB, A → aA | a, B → bB | b}, S)

| - означает ИЛИ, к пример A можно заменить на aA или просто a.

Кстати как вы думаете, какой язык описывает эта грамматика? Ответ будет в следующей статье, пока поразмышляйте над этим, а теперь к делу.

Давайте выведем какое-нибудь предложение данной грамматики:

S => AB => aAB => aAbB => aaAbB => aaabB => aaabb

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

Дерево вывода предложения (сентенции) грамматики. Синтаксическое дерево Урок, Языки программирования, Образование

Что же, можно сказать, всякий вывод предложения грамматики, порождает дерево, по крайней мере в неявном виде. Как вы думаете как называется обратная задача? Когда дано некое предложение грамматики например тоже самое aaabb и требуется восстановить дерево вывода.

Дерево вывода предложения (сентенции) грамматики. Синтаксическое дерево Урок, Языки программирования, Образование

Об этом в следующей статье…

Лига образования

4.5K поста21.9K подписчиков

Добавить пост

Правила сообщества

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


ДЛЯ АВТОРОВ:


Приветствуются:

-уважение к читателю и открытость

-желание учиться

Не рекомендуются:

-публикация недостоверной информации


ДЛЯ ЧИТАТЕЛЕЙ:


Приветствуются:

-конструктивные дискуссии на тему постов

Не рекомендуются:

-личные оскорбления и провокации

-неподкрепленные фактами утверждения


В этом сообществе мы все союзники - мы все хотим учиться! :)