
- •Формальные языки и грамматики Введение
- •1. Предварительные обсуждения
- •2. Формальные грамматики
- •3. Классификация формальных грамматик
- •4. Система составляющих
- •5. Синтаксические диаграммы
- •6. Синтаксическое дерево
- •7. Алгоритмы обхода вершин дерева разбора.
- •7.1 Алгоритм обхода "сверху-вниз".
- •7.2 Алгоритм обхода "снизу-вверх".
- •8. Двоичное дерево
- •9. Свойства двоичного дерева
- •10. Грамматический разбор цепочек
- •10.1. Разбор цепочки "сверху-вниз".
- •10.2. Разбор цепочки "снизу-вверх".
- •11. Операции над языками
- •Заключение
- •Контрольные вопросы и задачи
- •Индивидуальное задание
- •Указатель обозначений
- •Предметный указатель
- •Список литературы
- •1. Предварительные обсуждения.................................................... 4
Индивидуальное задание
Дана грамматика G = VT; VN; P; J где
VT = { a,b,c } { (, ), +, -, x, / },
VN = {<арифм_выражение:-J>, < терм:- T>,
<множитель: -M>, <операнд: - K>, <операция_сложения: - S1>, <операция_умножения: -S2>, <вспом_символ:-S3>},
J - начальный символ грамматики,
P ={ p1 = J ::= T | JS1T; p2 = T ::= M | TS2M;
p3 = M ::= K| S31JS32; p4 = S1 ::= "+" | "-";
p5 = S2 ::= "x" | "/"; p6 = K ::= "a" | "b" | "c";
p71= S31 ::= "("; p72= S32 ::= ")" }.
Нарисовать по заданию варианта:
1) синтаксические диаграммы для подмножества правил
{pi;pj;pk};
2) синтаксическое дерево для арифметического выражения;
3) двоичное дерево для арифметического выражения.
Выполнить грамматический разбор арифметического выражения для вариантов 1 - 30 по алгоритму " сверху-вниз", для вариантов 31 - 60 по алгоритму "снизу-вверх".
номер варианта |
индексы i, j, k |
арифметическое выражение |
номер варианта |
индексы i, j, k |
1 |
1,2,3 |
((a + b) x c) + (a - b) / c |
31 |
2,5,6 |
2 |
1,2,4 |
((a + b) / c) - ( a -b) / b |
32 |
2,5,71 |
3 |
1,2,5 |
((a2 - b2) x c - b) / c |
33 |
2,5,72 |
4 |
1,2,6 |
( a3 + b2)/ (c + b) |
34 |
2,6,71 |
5 |
1,2,71 |
(( a + b) - c)/ ( b + c ) |
35 |
2,6,72 |
6 |
1,2,72 |
( a - b) / ( c2+ a) |
36 |
3,4,5 |
7 |
1,3,4 |
( a + b ) / ( b2 x ( a - c )) |
37 |
3,4,6 |
8 |
1,3,5 |
( a2 + b2 ) / ( b x a - c ) |
38 |
3,4,71 |
9 |
1,3,6 |
( a + b2 ) / ( b2 + c2 ) |
39 |
3,4,72 |
10 |
1,3,71 |
(a2 + b2 ) / ( b2 - c ) |
40 |
3,5,6 |
11 |
1,3,72 |
(a2 + b2) x ( b - c ) |
41 |
3,5,71 |
12 |
1,4,5 |
(a2 - b x ( a - c )) x c |
42 |
3,5,72 |
13 |
1,4,6 |
((a2 - c) x b) x c2) |
43 |
3,6,71 |
14 |
1,4,71 |
(a - c) x ( b2 + c ) |
44 |
3,6,72 |
15 |
1,4,72 |
a + b + c2 - b2 |
45 |
4,5,6 |
16 |
1,5,6 |
a2 + b2 +c - b |
46 |
4,5,71 |
17 |
1,5,71 |
a2 / ( b2 - a + c) |
47 |
4,5,72 |
18 |
1,5,72 |
a / ( b2 - a2-c) |
48 |
4,6,71 |
19 |
1,6,71 |
a x ( b2 +a2 - c) |
49 |
4,6,72 |
20 |
1,6,72 |
a x ( b + a2 -c) |
50 |
5,6,71 |
21 |
2,3,4 |
a / ( b - c) +(a + c) |
51 |
5,6,72 |
22 |
2,3,5 |
a2 x b2 + ( a - c )) |
52 |
6,5,4 |
23 |
2,3,6 |
a2 - b2 - c2 |
53 |
6,5,3 |
24 |
2,3,71 |
( a2 -b ) / ( b2 - c) |
54 |
6,5,2 |
25 |
2,3,72 |
a x (((a + b)/ b + c) - a) |
55 |
6,5,1 |
26 |
2,4,5 |
a / ((( a - c) x b - a) + b) |
56 |
5,4,3 |
27 |
2,4,6 |
a + (( a x ( b + c )- a) - b) |
57 |
5,4,2 |
28 |
2,4,71 |
a - ( a - ( b x c + c ) + b) |
58 |
5,4,1 |
29 |
2,4,72 |
a - ( a x (( b - c) / a - c )) |
59 |
4,3,2 |
30 |
2,5,71 |
a / ( a x (( b+c ) 2 -a )) |
60 |
4,3,1 |