Лабораторные работы 1-7(старые) / Отчет по ТЯП7
.docСанкт-Петербургский государственный электротехнический университет
КАФЕДРА МО ЭВМ
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ N7
по дисциплине "Теория языков программирования"
“Алгоритм разбора типа перенос свертка.”
Преподаватель: Самойленко В.П.
студенты гр. 0341 Юбрин А.Н.
Шин Е.Д.
Санкт-Петербург
2002
-
Построить анализатор типа перенос-свертка для грамматики слабого предшествования
S N ; Q (1)
S S A (2)
S A (3)
N n (4)
Q N ; n (5)
Q q (6)
Q Q ; q (7)
A ( S ) (8)
A ( ) (9)
Построим матрицу слабого предшествования для грамматики.
|
S |
N |
Q |
A |
q |
n |
; |
( |
) |
|
S |
|
|
|
= |
|
|
|
< |
= |
|
N |
|
|
|
|
|
|
= |
|
|
|
Q |
|
|
|
|
|
|
= |
> |
> |
> |
A |
|
|
|
|
|
|
|
> |
> |
> |
q |
|
|
|
|
|
|
> |
> |
> |
> |
n |
|
|
|
|
|
|
> |
> |
> |
> |
; |
|
< |
<= |
|
<= |
<= |
|
|
|
|
( |
<= |
< |
|
< |
|
< |
|
< |
= |
|
) |
|
|
|
|
|
|
|
> |
> |
> |
|
< |
< |
|
< |
|
< |
|
< |
|
|
-
Определим отношение = непосредственно по правилам
S=A (2)
S=) (8)
N=; (1), (5)
Q=; (7)
;=Q (1)
;=q (7)
;=n (5)
(=S (8)
(=) (9)
-
Определим отношение <X
< S (2)
< N (1)
< A (3)
< n (1)=>(4)
< ( (3)=>(9)
-
Определим отношение X>
Q > (1)
A > (2)
q > (1)=>(6)
n > (1)=>(5)
) > (2)=>(9)
-
Определим отношения X>Y
Q >(правило ABY, B=>+Q, Y=>*( SSA, S=>N;Q , A=>( )
Q >)правило ABY, B=>+Q, Y=>*) A(S), S=>N;Q, )
A >( правило ABY, B=>+A, Y=>*( SSA, S=>A, A=>( )
A >) правило ABY, B=>+A, Y=>*( A(S), S=>A, )
q > ; правило ABY, B=>+q, Y=>*; QQ ; q, Q=>q, ;
q >(правило ABY, B=>+q, Y=>*( SSA, S=>N;Q=>N;q, A=>( )
q >)правило ABY, B=>+q, Y=>*) A(S), S=>N;Q=>N;q, )
n > ; правило ABY, B=>+n, Y=>*; QN ; n, N=>n, ;
n >(правило ABY, B=>+n, Y=>*( SSA, S=>N;Q=>N;N;n, A=>( )
n >)правило ABY, B=>+n, Y=>*) A(S), S=>N;Q=>N;N;n, )
) >(правило ABY, B=>+), Y=>*( SSA, S=>A=>(), A=>( )
) >)правило ABY, B=>+), Y=>*) A(S), S=>A=>(), )
-
Определим отношения X<Y
S < ( правило ASB, B=>+(, SS A, A=>()
; < N правило A;B, B=>+N, S N ; Q, Q=>N;n
; < Q правило A;B, B=>+Q, S N ; Q, Q=>Q;q
; < q правило A;B, B=>+q, S N ; Q, Q=>q
; < n правило A;B, B=>+n, S N ; Q, Q=>N;n=n;n
( < S правило AB, B=>+S, A (S), S=>S A
( < N правило A(B, B=>+N, A (S), S=>N;Q
( < A правило AB, B=>+Q, A (S), S=>A
( < ( правило A(B, B=>+q, A (S), S=>A=>( )
( < n правило A(B, B=>+n, A (S), S=>N;Q=>n ; Q
-
Построим функцию переноса f
|
q |
n |
; |
( |
) |
|
S |
|
|
|
П |
П |
|
N |
|
|
П |
|
|
|
Q |
|
|
П |
С |
С |
С |
A |
|
|
|
С |
С |
С |
q |
|
|
С |
С |
С |
С |
n |
|
|
С |
С |
С |
С |
; |
П |
П |
|
|
|
|
( |
|
П |
|
П |
П |
|
) |
|
|
|
С |
С |
С |
|
|
П |
|
П |
|
|
S |
|
|
|
|
|
Д |
Пустые ячейки ошибка
-
Построим функцию g свертки
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
S |
|
|
|
|
|
|
|
8 |
9 |
N |
|
|
|
|
|
|
|
|
|
Q |
|
|
|
|
|
|
|
|
|
A |
|
|
|
|
|
|
|
|
|
q |
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
; |
|
|
|
|
5 |
6 |
7 |
|
|
( |
1 |
2 |
3 |
4 |
5 |
|
|
8 |
9 |
) |
|
|
|
|
|
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
|
|
8 |
9 |