0601~0605
Flex,Bison
NFA DFA DFA (LL(1)) (LR(0)SLR(1)LR(1)LALR(1))
1 .
2.R=(a*b)*ba(a|b)* DFA(1) NFA(2) NFA DFA(3) DFA
3.G[E]ET | E+T| E-T TF | T*F | T/F Fi | (E)(E+T)*i+FG
4.1G[S]=({b},{S,B},S, {S b|bB,BbS}),_________
2L={anbbn|n 1}_______L
3G[I] II1 | I0 | Ic | a | b | c ________ ab0 a0c01 aaa bc10
4. 1G[S]=({b},{S,B},S, {S b|bB,BbS}), LG[S]={b2i+1|i 0} 2L={anbbn|n 1} Z aAb A aAb | b L3G[I] II1 | I0 | Ic | a | b | c ab0 a0c01 aaa bc10
5. G[S]SEEAa | bBAcA|dBcB|dLR(0)bccdG[S]
6.1 exp exp + term | exp - term | term _________
2LALR(1)LR(1)T/F
7. lexpatom|listatomnumber|identifierlist(lexp-seq)lexp-seqlexp-seq lexp | lexp1) 2) FirstFollowlexp-seq->lexp lexp-seq lexp-seq->lexp lexp-seq|
First(lexp) = { n, i, ( },Follow = { $,n,i,(,) }First(atom) = { n, i },Follow = { $,n,i,(,) }First(list) = {(},Follow = { $,n,i,(,) }First(lexp-seq) = { n,i,( },Follow = { ) }First(lexp-seq) = {,n,i,( },Follow = { ) }
8.LR(1)LALR(1)S a A d | b B d | a B e | b A eA cB c
9.-A aB {print 0}A c {print 1}B Ab {print 2}aacbb
aacbb12020bBcAAaBAabA aB {print 0} A c {print 1} B Ab {print 2}
10. TINY programread x ; { input an integer }if 0 < x then { dont compute if x
read x t1=x>0if_false t1 goto L1fact=1label L2t2=fact*xfact=t2t3=x-1x=t3t4= x= =0if_false t4 goto L2 write factlabel L1halt(sub, x, 1, t3 )(asn, t3, x, _ )(eq, x, 0, t4 )(if_f, t4, L2, _)(wri, fact, _, _ )(lab, L1, _ , _ )halt, _, _, _ )(rd, x , _ , _ )(gt, x, 0, t1 )(if_f, t1, L1, _ )(asn, 1,fact, _ )(lab, L2, _ , _ )(mul, fact, x, t2 )(asn, t2, fact, _ )