第二章 语言的基本知识

50
1 第第第 第第第第第第第 第第第第第第第 2.1 第第第 2.2 第第第第第第第第 2.3 第第第第第第第 2.4 第第第第第第

description

第二章 语言的基本知识. 学习本章的目的。 2.1 符号串 2.2 文法和语言的定义 2.3 分析树和二义性 2.4 形式语言 概观. 学习本章的目的. 构造编译程序的算法是从研究源程序及目标程序产生的,首先找到源语言的形式描述,根据这种描述,构造出相应的分析加工程序。 语言分语法,语义和语用。程序语言语法的形式描述是很好用的,语义的形式描述不那磨好用,但它推动语言理论的发展。. 2.1 符号串. 2 . 1 . 1 字母表 2 . 1 . 2 符号串 一. 符号串的定义 二. 术语 三. 符号串的运算 - PowerPoint PPT Presentation

Transcript of 第二章 语言的基本知识

  • 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)