编译系统课堂练习.ppt_第1页
编译系统课堂练习.ppt_第2页
编译系统课堂练习.ppt_第3页
编译系统课堂练习.ppt_第4页
编译系统课堂练习.ppt_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

练习,1、程序语言一般分为 (1) 和 (2) 两大类。其中 (3) 与人类自然语言比较接近,(4)又称为面向机器的语言。 A 高级语言 B 专用程序语言 C 低级语言 D 通用程序语言 A C A C,练习,2、面向机器的语言是指(1) ,其特点是(2) 。 (1) A. 用于解决机器硬件设计问题的语言 B. 特定计算机系统所固有的语言 C. 各种计算机系统都通用的语言 D. 只能在一台计算机上使用的语言 (2) A. 程序执行效率低,编写效率低,可读性差 B. 程序执行效率低,编写效率高,可读性强 C. 程序执行效率高,编写效率高,可读性强 D. 程序执行效率高,编写效率低,可读性差 B D,练习,3、编译程序是将 (1) 翻译成 (2) ;汇编程序是将 (3) 翻译成 (4) 。 A.汇编语言程序 B.高级语言程序 C.机器语言程序 D.汇编语言程序 或 机器语言程序 E.汇编语言程序 或 高级语言程序 B D A C,练习,4、编译程序的工作过程可以划分为 (1) 等六个阶段,同时还伴有 (2) 和(3) 。 (1)词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成。 (2)表格管理 (3)出错处理 5、编译程序可以发现源程序的全部 (1) 错误和部分 (2) 错误。 A.语用 B. 语义 C. 语法 D. 运行 C B,练习,6、要在某台机器上为某种语言构造一个编译程序(编译器),必须掌握的内容有(1)。 A.汇编语言 B.源语言 C.目标语言 D.程序设计方法学 E.编译方法 F.测试方法 G.机器语言 B C E 7、一个编译程序,不仅包含词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成,还应包括(1) 。 其中(2)和(3)不是每个编译程序都必需的。 词法分析器用于识别(4) 。 语法分析器可以发现源程序中的 (5)。 (1)表格处理和出错处理 (2)中间代码生成 (3) 代码优化 (4)单词 (5)语法错误,练习,8、程序语言的语言处理程序是一种(1)。 (2)都是程序语言的处理程序,两者的主要区别在于(3) 。 (1) A.系统软件 B. 应用软件 C.实时软件 D. 分布式系统软件 (2) A. 高级语言程序 和 低级语言程序 B. 解释程序 和 编译程序 C. 编译程序 和 操作系统 D. 系统程序 和 应用程序 (3) A. 单用户与多用户的差别 B. 对用户程序的查错能力不同 C. 机器执行的效率不同 D. 是否生成目标代码 A B D,练习,9、编译器必须完成的工作有(1) 。 A. 词法分析 B. 语法分析 C. 语义分析 D. 中间代码生成 E. 代码优化 F. 目标代码生成 A B C F 因为代码优化是为了提高目标程序的质量,不是必须的,没有优化源程序一样能够转化为目标代码。而中间代码生成是为代码优化服务的,没有代码优化的编译器可以直接生成目标代码。,练习,10、编译时,语法分析器的任务包括(1) 。 A. 分析单词是怎样构成的 B. 分析单词串是如何构成语句和说明的 C. 分析语句和说明是如何构成程序的 D. 分析程序的结构 B C D,练习,11、与编译程序相比,解释程序通常缺少(1),同时,解释程序(2),它处理语言时采用的方法是(3)。 (1) A.中间代码生成 B.目标代码生成 C.词法分析 D.语法分析 E.代码优化 (2) A.比较简单,可以移植性好,执行速度快 B.比较复杂,可以移植性好,执行速度快 C.比较简单,可以移植性差,执行速度慢 D.比较简单,可以移植性好,执行速度慢 (3) A. 源程序语句被直接解释执行 B. 将源程序逐句转化成中间代码,解释执行 C. 先将源程序解释转化为目标代码,再执行 D. 以上方法都行 (1)B E (2) D (3) B,练习,12、判断:“含有代码优化的编译器的执行效率高”。 错。含有代码优化的编译器,其优化是指对生成的目标代码进行了优化,而不是编译器本身得到了优化,所以,它提高的是目标代码的执行效率,而不是编译器本身的执行效率。 13. 判断:“解释方式与编译方式的区别在于解释程序对源程序没有真正进行翻译”。 错。编译方式和解释方式实际上都进行的翻译,只是编译相当于笔译,而解释相当于口译。 解释方式下,不将于源程序彻底翻译成目标代码,而是每读入一条语句,将其翻译成中间代码,解释其含义并执行,然后再读入下一条语句,再翻译执行。 编译方式和解释方式的根本区别在于“是否生成了目标代码”。,例9 文法GS: (1)SaSBE (2)SaBE (3)EBBE (4)aBab (5)bBbb (6)bEbe (7)eEee 求对应的语言。,原则: G生成的每个串都在L(G)中 L(G)中的每个串确实能被G生成,答案: L(G)= anbnen | n1 ,练习,例10 LG= ambn | m , n 0 求对应文法,答案:SAB 或 SaS AaA | a SaB BbB | b BbB | b,练习,例11 LG= ambn | m , n = 0 求对应文法,答案:SAB 或 SaS AaA | SB BbB | BbB | ,独自增长型!,练习,例12 LG= anbn | n 0 求对应文法,答案:SaSb 或 AaB | ab Sab BAb,卷心菜型!,例13 LG= anbn | n =0 求对应文法,答案:SaSb 或 AaB | S BAb,练习,例14 LG= anbbn | n 0 求对应文法(独心的),答案:SaAb AaAb Ab,卷心菜型!,例15 LG= ambn | n=m=1 求对应文法 (混合型),答案:SaAb AaAb AAb A,练习,例16 文法GS: SAB 求对应的语言。 AaAb| ab BBc |,答案:LG= ambmcn | m0, n =0 ,例17 请写出非0开头的正偶数集的文法,答案:S2|4|6|8 SHT H1|2|9|HB B0|1|2|9 T0|2|4|6|8,文法的等价,若 L(G1)= L(G2),则称文法G1和G2是等价的。 即:两个不同的文法能够产生相同的语言。 例如文法G1A:A0R 与 G2S:S0S1 等价 A01 S01 RA1,E E T T F F i1 * i2 + i3 短语:i1 ,i2 ,i3 ,i1*i2 ,i1*i2+i3 直接短语: i1 , i2 , i3 句柄: i1,例 GE:EE+T|T TT*F|F F(E)|i 求句型i*i+i的 短语、直接短语、句柄,练习,1. “符号就是字符”,这种说法正确吗? A.正确 B.不正确,B,2.文法GS:SA0 SB1 AS1 A1 BS0 B0 该文法是Chomsky (1) 型文法,该文法所描述的所有只含四个符号的句子是 (2) 。,(1) 3 (2)1010,0110,1001,0101,4.文法GS: Sb|bB BbS 该文法所描述的语言是 ? A. L(G)=bi|i0 B. L(G)=b2i|i0 C. L(G)=b2i+1|i0 D. L(G)=b2i+1|i1,C,5.一个语言的文法是 ? A.唯一的 B.不唯一 C.个数有限的,B,6.已知语言L=anbbn|n=1, 写出对应文法。,答案:SaAb AaAb|b,7.文法GE: EE1|E0|Ea|Ec|a|b|c 下列符号串是该文法的句子的有: A.ab0 B.a0c01 C.aaa D.bc10,答案:B C D,8.文法GE: EE+T|T TT *F|F F(E)|a 写出该文法句型 E+F*(E+T)的短语、直接短语和句柄。,9.文法GS: SA AB|if A then A else A BC|B+C|+C CD|C*D|*D Dx|(A)|-D (1)哪些是终结符,哪些是非终结符? (2)构造下列符号串推导的语法树: if x+x then x*x else x 写出其短语、直接短语和句柄。,11.文法GS:Sa|(T)| TT,S|S 请给出句子(a,(a,a)的最左、最右推导。,正规文法正规式 举例,例:正规文法GS: SaA ,将正规文法正规式。 Sa AaA AdA Aa Ad,SaA Sa AaA AdA Aa Ad,SaA|a AaA|dA Aa|d,Sa(A|) A(a|d)A Aa|d,Sa(A|) A(a|d)*(a|d),Sa(a|d)*(a|d)|),Sa(a|d)*,课后习题:8,正规式正规文法 举例,例:正规式 r = 0(0|1)* ,将正规式正规文法。,S0 (0|1)*,S0A A(0|1)*,S0A A(0|1)A A,S0A A0A|1A A,S0A A0A A1A A,返回,举例:求最小化DFA,返回,P70 例2,举例:求FA所对应的正规式R,解:,FA 正规式,则:R=(a|b)* (aa |bb)(a|b)*,举例:为 R=(a|b)*abb 构造NFA N,使得L(N)=L(R)。,P68 例1,正规式FA,举例:求与文法GS等价的 NFA M GS:SaA SbB S AaB AbA BaS BbA B 右线性文法,正规文法FA 举例,与f(A,a)=B 对应的产生式为:AaB 对终态结点Z,增加产生式:Z NFA的初态对应文法的开始符号 NFA的输入字符集对应文法的 VT,FA正规文法,GS: AaB AbD BbC CaA CbD C DaB DbD D,例12:文法GE: EE+T|T 构造预测分析表。 TT*F|F Fi|(E),解: (1)消除左递归: VN排列为 E,T,F 消除E一切直接左递归: ETE TT*F Fi E+TE| TF F(E) 消除T的一切直接左递归: ETE TFT Fi E+TE| T*FT| F(E) F没有左递归。 文法无左公共因子。 所以,提取左公共因子和消除左递归后的文法为: ETE TFT Fi E+TE T*FT F(E) E T,(2)判断改写后的文法是否为LL(1)文法: 可推导出的VN表: E E T T F 否 是 否 是 否 求First集: First(E)= i , ( First(E)= + , First(T)= i , ( First(T)= * , First(F)= i , ( First( TE )=First(T)= i , ( First( FT )=First(F)= i , ( 求Follow集: Follow(E)= # , ) Follow(E)=Follow(E)Follow(E) = # , ) Follow(T)=(First(E)-) Follow(E)=+, #, ) Follow(T)= Follow(T)Follow(T) = +, #, ) Follow(F)=(First(T)-)Follow(T)Follow(T) = *, +, #, ) ,求各产生式的SELECT集: SELECT(ETE) = First(TE) = i , ( SELECT(E+TE) = First(+TE) = + SELECT(E ) = Follow(E) = #,) SELECT(TFT) = First(FT) = i , ( SELECT(T*FT) = First(*FT) = * SELECT(T )= Follow(T)= +,#,) SELECT(F(E) ) = First(E) = ( SELECT(Fi) = First(i) = i 判定: SELECT(E+TE) SELECT(E ) = SELECT(T*FT) SELECT(T ) = SELECT(F(E) ) SELECT(Fi) = 所以该文法是LL(1)文法,可以使用预测分析法。,(3)构造预测分析表:,构造预测分析表的方法: 对每个VT或“#”用符号a表示。 若aSELECT(A),则把A放入MA,a中。 (所有空白的MA,a表示出错。),Select(ETE) = i , ( Select(E+TE) = + Select(E ) = #,) Select(TFT) = i , ( Select(T*FT) = * Select(T ) = +,#,) Select(F(E) ) = ( Select(Fi) = i ,(4)预测分析输入串 #i+i*i#,构造识别活前缀的有穷自动机(项目集规范族法),例如 文法G:(1) S aAcBe (2) A b (3) A Ab (4) B d 构造对应的LR(0)项目集规范族。,步骤一:拓广文法 (0) S S (1) S aAcBe (2) A b (3) A Ab (4) B d,步骤二:构造项目集规范族 步骤三:判别(无“移进-归约冲突”和“归约-归约冲突”),I0 S S S aAcBe,I1I0 -SI1 S S,I2I0 -aI2 S aAcBe A b A Ab,I3I2 -AI3 S aAcBe A Ab,I4I2 -bI4 A b,I5I3 -cI5 S aAcBe B d,I6I3 -bI6 A Ab,I7I5 -BI7 S aAcBe,I8I5 -dI8 B d,I9I7 -eI9 S aAcBe,I0 S S S aAcBe,返 回,步骤四:根据项目集规范族 构造 DFA,例如:构造如下DFA对应的 LR(0)分析表,LR(0)分析表,另例,文法GE (1) E T + E (2) E T (3) T i * T (4)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论