Download - 第二章 语言的基本知识

Transcript
  • 2.1 2.2 2.3 2.4

  • 2.1

    2.1.1 2.1 .2 . . . .

  • : 1.01 ,={01} 2. ASCII 3. Pascal = {AZ, az, 09, +, -, *, /, , :, ',', ; . , (, ), {, }, [, ] } 2.1.1

  • . (1) (2) xa, xa(3) y,(1) (2) ,""2.1.2

  • sss: s: s(SRS|aab|=3,||=0

  • s=banana,b,ba,ban,bana,banan,bananabanana,anana,nana,ana,na,a, : banana,anana,banan,anan,, : xsx : baa(SRananabbanana=6

  • 1.xy xyyxx=ba,y=nana,xy=banana.2.x0= ; x1=x; x2=xx; ;xn=xn-1x; , x=ba, x1= ba, x2=baba, x3=bababa,....

  • LM 1.LMs|sL or sM} 2.LM st|sL and tM} 3. L0={} L1L L2LL, ..., LnLn-1L 4. LKleeneL* L*Li(i>=0) =L0L1L2L3 5LL+L+L L* L+Li(i >=1) =L1L2L3L4. (

  • L={A~Z,a~z} D={0~9} 1LD={A~Z,a~z ,0~9} 2LD 3L4 4LLD)* . 5D+1.

  • 2.2 2 . 2 . 1 2 . 2 . 2 . . . .

  • The grey wolf will eat the goatThe grey wolf will eat the goat

  • 1 2 the grey 5 6 will eat 9 wolf goat

  • VT={thegrey, wolf,will, eat, goat}VN={ }P={ } S=

  • the the grey the grey wolf the grey wolf ... the grey wolf will eat the goat

  • the grey wolf will eat the goat the grey wolf will eat the wolf the grey goat will eat the wolf the grey goat will eat the grey the grey wolf will eat the goat

    +

  • The grey wolf will eat the goatgoat theeatwillThe greywolf

  • The grey wolf will eat the goatgoat theeatwillThe greywolf

  • G= VTVN S, P VT VN VTVN S VN P A(A ::) AVNVTVN*S A 1|2

  • G=({a,+,*,(,)},{ } P ) P * ) a E E+T T T T*F F F ( E ) a (2.1)2.2 G:

  • G=(VT,VN,S,P), AP,,(VTVN)*,A, A A A 012 nn0 0 n 0 n 0=n0 n+

    +

    *. 2.3

  • E E+T T+T F+T a+T a+F a+a

    (A(

    (((

    (

    (

    E

    (E+T

    E(E+T

    (

    (

    E+T

    (T+T

    E(T

    (

    +T

    T+T

    (F+T

    T(F

    (

    +T

    F+T

    (a+T

    F(a

    (

    +T

    a+T

    (a+F

    T(F

    a+

    (

    a+F

    (a+a

    F(a

    a+

    (

  • GVTVNS,PS , L(GG L(G){|S VT*}2.3 G({a,b},{S},SPPSaSb ab SaSb aaSbb a3Sb3 an-1Sbn-1 anbn

    *+. 2.4

  • G=(VT={a,b},VN={S,A,B},S,P} P:SaB|bA Aa|aS|bAA Bb|bS|aBBL(G)={w|w{a,b}+,wab} w (1)S w,wab (2)A w,wab (3)B w,wba |w|=1Aa, B b, S 1,***2.4

  • (1),(2)(3)k-1w|w|=k 1SaBSbA,w=aw1B w1 |w1|=k-1bawa,bSbA,|w|=k, wa,b,S wSabSaB,B w1, |w1|=k-1, w1ba,w= aw1S bASaB 23***

  • : wG,wL(G) S wG[E]2.2w=a+a aEE+T T+T F+T a+T a+TF a+F F a+a F a+aa A (A) VT*EE+T E+T F E+ T a E+FaE+aa T+aa F+aa a+aa A (A) VT*+.

  • G[S] S A A A S A A 21 a1*a2+a3 E a2a3 a2a3 , E a1*E a1,a2,a3a1 *a2,a1*a2+a3 :a1a2 ,a3 :a1+

    **+

    +

    2.5

  • 2.3 . . . . .

  • G=VTVNSP,G 1. VTVN{}2S3A,AVN 4nA,n1,n2,,nknX1,X2,,XkAX1X2XkP5. nn.

  • G=(VT,VN,S,P), P: SaASa A SbA SS ba3124657891011SaASSbAaaba2.5

  • ASaSbSAaaba aSbAS aabAS aabbaS aabbaa aAS S. (1.

  • ASaSbSAaaba aAa aSbAa aSbbaa aabbaa aAS S. (2.

  • 1. 2. 3.

  • SAbSaSbaAaa.

  • G[E]a1+a2*a3:

  • EE+TT+TF+T a1+T a1+T*F a1+F * F a1+a2 *FE+T T,T+T F,F+T a1, a1+T a1, T*F, a1+T*Fa1, F,F*F, a1+F*F a1, a2,a1+ a2 *F, a2 *F a1, a2, a3, a2 * a3 a1+ a2 *a3EE+TTFa1T*FFa2a3a1+a2 *a3 (a)

  • EE+TE+T*FE+T*a3E+F* a3E+a2 * a3 T+a2 * a3 F+a2 * a3 EE+TTFa1T*FFa2a3a1+a2 *a3(b)

  • 2. G[E], EE+EE*E (E) a a+a*a, EE+E a+E a+E*E a+a*E a+a*a E E*E E+E*E a+E*E a+a*E a+a*a .

  • EE+E a+E a+E*E a+a*E a+a*a E E*EE+E*E a+E*Ea+a*E a+a*aEE+EE*EaaaEE*E+EEaaa(1)

  • EE+E E+E*E E+E*a E+a*a a+a*a E E*EE*a E+E*aE+a*a a+a*aEE+EE*EaaaEE*E+EEaaa(2)

  • ,,,; 1 . 2 .1S if expr then S if expr then S else S other: if e1 then if e2 then s1 else s2 . ambiquity):

  • Smathed_s unmathed_s mathed_s if expr then mathed_s else mathed_s otherunmathed_s if expr then S if expr then mathed_s else unmathed_s 2. if:

  • 3. 4. aibicji,j1 aibjcji,j1akbkck 1 AA P 2. A S A A VT* *+3,4

  • 2.4 2.4. 1 2.4. 2 2.4. 3

  • 01230G=(VT,VN,S,P) , (VTVN)*, 1 A A VN, ,,. (VTVN)*, 2 A A VN (VTVN)* 3 A aB A a A Ba A a a VT{}2.4.1

  • , 2.9 L1={wcw|w{a,b}+},aabcaabL12.10 L2={anbmcndm|n,m0}2.4.2

  • Pascal s-callid(r-list) r-listr-list, r |r 2.7 GA: A A ,{VTVN}+,A,+2.4.3

  • {anbn|n0} {anbm|nm 0},

  • VT(2.1) a

  • 1.1 G[S]: ( b ) , ( c ), ( d ), ( e ) 1.2 G[S]: ( a ), ( b ) , ( c ), ( d ) 1.3 G[bexpr]: ( b ) 1. a) ann0 (b) anbmn,m1 (c) anbmckn,m1 (d)Pascal (e) Pascal2. G[S] S(S) (a)L(G[S]) (b)(a)