Professional Documents
Culture Documents
NFA State
NFA State
{1, 2} A B C
{3,4,5} B {} B
{4,5} C {} B
Epison-Closure({1}) = {1,2}
move(A, b) = {4}
move(B, a) = {}
move(C,a) = {}
start state=A
end state=B,C
Epilson-closure({0})={0,1,2,3,7}
NFA DFA a b
{0,1,2,3,7} A B C
{1,2,3,4,6,7} B B C
{1,2,3,5,6,7} C B C
Epilson-closure({0}) = {0,1,2,3,4,6,7,9,10}
NFA DFA a b
{0,1,2,3,4,6,7,9,10} A B C
{1,2,3,4,5,6,7,9,10} B B C
{1,2,3,4,6,7,8,9,10} C B C
3a)
<id,celcius><=><punc,(><id,fahreiheit><op,-><number,32><punc,)><op,*><punc,
(><number,5><op,/><number,9><punc,)>
b)
Celcius -1
Fahrenheit - 2
c)
[a-z] = ([a-z]-[0-9]2)*([0-9]1/[0-9]1)
FIRST T = {int,(}
FIRST X = {+,e}
FIRST Y = {*,e}
FOLLOW E = {),$}
A*(a+a)
E -> E *E
->E * (E)
->E*(E+E)
E -> E + F | F
F -> F * A |A
A -> (
4a)
b)
E -> E + E I E * E I (E) l id
1.Eliminating ambiguous
E -> E + F | F
F -> F * A | A
A -> (E) | id
E’ -> E’ + F
E -> FE’ | ϵ
F’ -> F * A’
F -> AF’ | ϵ
A -> (E) | id
5a)
S -> 0A
A ->0A1 | 1
FIRST(S) = {0}
FIRST(A) = {0,1}
FOLLOW(S) = {$}
Parsing table
0 1
S S -> 0A
A A ->0A1 A ->1
W=0011
a)
FIRST FOLLOW
start FIRST(decl) = {int,string} {$}
decl FIRST(type) = {int,string} FIRST(stmt) = {id}
type {int,string} First(list) = {id}
list {id} {;}
more {,e} FOLLOW(list) = {;}
stmt {id} FOLLOW(start) = {$}
expr {id,number} FOLLOW(stmt) = {$}
b)
NT [ ] a b c + $ -
S S->[SX] S->a
X X->e X->e X->+SY X->e
Y Y->e Y->e Y->e Y->-SXc
b) w = [a+a-ac]
Matched Stack Input Action
S$ [a+a-ac]$ S->[SX]
[ [SX]$ [a+a-ac]$ match [
[ SX]$ a+a-ac]$ S->a
[a aX]$ a+a-ac]$ match a
[a X]$ +a-ac]$ X->+SY
[a +SY]$ +a-ac]$ match +
[a+ SY]$ a-ac]$ S->a
[a+ aY]$ a-ac]$ match a
[a+a Y]$ -ac]$ Y -> -SXc
[a+a -SXc]$ -ac]$ match -
[a+a- SXc]$ ac]$ S->a
[a+a- aXc]$ ac]$ match a
[a+a-a Xc]$ c]$ X->€
[a+a-a c]$ c]$ match c
[a+a-ac ]$ ]$ match ]
[a+a-ac] $ $ accept
a)
i. S -> do S while S
S -> do S while S
do while S
do while do S while S
do while do while S do S while S
do while do while do S while S
do while do while do while S
do while do while do while
1.
S’ -> S
S -> aSbS
S -> a
W=aab#