ω G ( 㳿 ), , . , , . , . , , . . , , , ( ) . :
S
ω1 A ω2
ω1 X Y
. 5
: . :
- ( );
- - , ( );
- , , ;
- ( ) .
-.
. - - , :
1)
2) , , , .
, -, ( , ) , , .
.
-:
1) , - -.
2) , , -.
3) -, -, ().
4) - -, .
4. :
, . ³ ; LL(K)- ,
, - - . , - , ( , ), -.
-. - - -.
|
|
. - , :
- - ( );
- - .
- .
: , , ():
.
, , ,
, , .
. .
.
1. .
2.
- .
n.
- .
m. .
, :
- ;
- , .
.
: Firstk(Ai) :
S -> BA
A -> +BA | ε
B -> DC
C -> *DC | ε
D -> (S) | a
k=2.
Fn\Ai | S | A | B | C | D |
F0 | -- | { ε } | -- | { ε } | {a} |
F1 | -- | { ε } | {a} | { ε, *a} | {a} |
F2 | {a} | {ε, +a} | {a, a*} | { ε, *a} | {a} |
F3 | {a, a+, a*} | {ε, +a} | {a, a*} | { ε, *a} | {a, (a} |
F4 | {a, a+, a*} | {ε, +a} | {a, a*, (a} | { ε, *a, *(} | {a, (a} |
F5 | {a, a+, a*, (a} | {ε, +a, +(} | {a, a*, (a} | { ε, *a, *(} | {a, (a} |
F6 | {a, a+, a*, (a} | {ε, +a, +(} | {a, a*, (a} | { ε, *a, *(} | {a, (a, ((} |
F7 | {a, a+, a*, (a} | {ε, +a, +(} | {a, a*, (a, ((} | { ε, *a, *(} | {a, (a, ((} |
F8 | {a, a+, a*, (a, ((} | {ε, +a, +(} | {a, a*,(a, ((} | { ε, *a, *(} | {a, (a, ((} |
F9 | {a, a+, a*, (a, ((} | {ε, +a, +(} | {a, a*, (a, ((} | { ε, *a, *(} | {a, (a, ((} |
, - -:
G :
(1)
- :
:
, (2).
, (2) , - - .
: - -, - :
,
:
, :
.
:
- - -;
- - (k>1), -.
. :
, .
³ , , ,
.
-:
) -
) -
: -. -. S:
)
)
: -.
. .
, . 1 S
|
|
ω1 A ω2
. 6
.
2:
S
ω1 AJ ω2
ω3 A ω4
. 7.
. , , , , .
0. . , 0 S, . .
1. . .
.
n . .
.
m, , .
.
, :
- ;
- .
, - .
: - -, .
. -:
.
. n
-.
. G -:
=
, - -
. . i S0, S1, .
, i.
.
.
, .
. G :
1. :
- , S:
, . , .
.
: G (k =1):
S -> BA
A -> +BA | ε
B -> DC
C -> *DC | ε
D -> (S) | a
, First1(A), :
First1(S)= First1(B)= First1(D)={(,a}, First1(A)={+, ε }, First1(C)={*, ε }.
δn\Ai | S | A | B | C | D |
δ0 | { ε } | -- | -- | -- | -- |
δ 1 | { ε } | { ε } | {+, ε } | -- | -- |
δ 2 | { ε } | {ε} | {+, ε } | {+, ε } | |
δ 3 | { ε } | {ε} | {+, ε } | {+, ε } | {*, +, ε } |
δ 4 | { ε,) } | {ε} | {+, ε } | {+, ε } | {*, +, ε } |
δ 5 | { ε,) } | {ε,)} | {+, ε } | {+, ε,)} | {*, +, ε } |
δ 6 | { ε,) } | {ε,)} | {+, ε,)} | {+, ε } | {*, +, ε,)} |
δ 7 | { ε,) } | {ε,)} | {+, ε,)} | {+, ε,)} | {*, +, ε,)} |
, Follow1(S) = { ε,) }, Follow1(A) = {ε,)}, Follow1(B) = {+, ε,)}, Follow1(C) = {+, ε,)}, Follow1(D) = {*, +, ε,)}.