1.73M
Category: programmingprogramming

Контекстно-свободные языки и грамматики. Лекция 4

1.

Лекция 4
Контекстно-свободные
языки и грамматики
Разработал: к.п.н., доцент
Наточая Е. Н.

2.

План лекции
2
1 Вывод цепочек
2 Дерево разбора
3 Однозначность КС-грамматик

3.

1 Вывод цепочек
Пример 1. Дано: G=({a, b, +}, {S, T},
{S T|T+S; T a|b}, S)
Построить: вывод цепочки a+b+a
Левосторонний вывод:
S T+S a+S a+T+S a+b+S
a+b+T a+b+a
Правосторонний вывод:
S T+S T+T+S T+T+T
T+T+a T+b+a a+b+a

4.

2 Дерево разбора
(1) {VT VN }, S, {VT }
(2) A VN , a1, a2, …, an , ai {VT VN }
A a1a2…an Р, n 1
(3) A VN , , A Р

5.

Пример 2
Дано: G=({a, b, +}, {S, T}, {S T|T+S; T a|b}, S)
Построить: дерево разбора цепочки a+b+a
Нисходящее
S
дерево вывода:
T
a
S
+
T
b
+
S
T
a

6.

Пример 3
Восходящее дерево разбора: S T|T+S; T a|b
S
S
T
S
T
T
a
+
b
+
a

7.

3 Однозначность КС-грамматик
(1) A AA |
(2) A A A |
(3) A A | A |
(4) A A | A A |
где A VN; , , V*.

8.

Пример 4
Неоднозначная грамматика:
G=({if, then, else, a, b}, {S}, P, S)
P={S if b then S else S | if b then S | a}
if b then if b then a else a
S if b then S | if b then S else S | a
S if b then S else S | a
English     Русский Rules