ImageVerifierCode 换一换
格式:PPT , 页数:49 ,大小:993KB ,
资源ID:5779179      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-5779179.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(编译系统课堂练习.ppt)为本站会员(jinchen)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

编译系统课堂练习.ppt

1、练习,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、编译程序

2、是将 (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、要在某台机器上为某种语言构造一个编译程序(编译器),必须掌握的内容

3、有(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.

4、 分布式系统软件 (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 因为代码优化是为了提高目标程序的质量,不是必须的,没有优化源程序一样能够转化为目标代码。而中间代码生成是为代码优化服务的,没有代码优化的编译器可以直接生成目标代码。,

5、练习,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. 将源程序逐句转化成中

6、间代码,解释执行C. 先将源程序解释转化为目标代码,再执行D. 以上方法都行 (1)B E (2) D (3) B,练习,12、判断:“含有代码优化的编译器的执行效率高”。错。含有代码优化的编译器,其优化是指对生成的目标代码进行了优化,而不是编译器本身得到了优化,所以,它提高的是目标代码的执行效率,而不是编译器本身的执行效率。 13. 判断:“解释方式与编译方式的区别在于解释程序对源程序没有真正进行翻译”。错。编译方式和解释方式实际上都进行的翻译,只是编译相当于笔译,而解释相当于口译。 解释方式下,不将于源程序彻底翻译成目标代码,而是每读入一条语句,将其翻译成中间代码,解释其含义并执行,然后再

7、读入下一条语句,再翻译执行。 编译方式和解释方式的根本区别在于“是否生成了目标代码”。,例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 或 SaSAaA | a SaBBbB | b BbB | b,练习,例11 LG= ambn | m , n = 0 求对应文法,答案:SAB 或 SaSAaA | SBBbB | B

8、bB | ,独自增长型!,练习,例12 LG= anbn | n 0 求对应文法,答案:SaSb 或 AaB | abSab BAb,卷心菜型!,例13 LG= anbn | n =0 求对应文法,答案:SaSb 或 AaB |S BAb,练习,例14 LG= anbbn | n 0 求对应文法(独心的),答案:SaAbAaAbAb,卷心菜型!,例15 LG= ambn | n=m=1 求对应文法 (混合型),答案:SaAbAaAb AAbA,练习,例16 文法GS: SAB 求对应的语言。AaAb| abBBc |,答案:LG= ambmcn | m0, n =0 ,例17 请写出非0开头的

9、正偶数集的文法,答案:S2|4|6|8SHTH1|2|9|HBB0|1|2|9T0|2|4|6|8,文法的等价,若 L(G1)= L(G2),则称文法G1和G2是等价的。 即:两个不同的文法能够产生相同的语言。例如文法G1A:A0R 与 G2S:S0S1 等价A01 S01RA1,EE TT FFi1 * 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.不正确,

10、B,2.文法GS:SA0SB1AS1A1BS0B0该文法是Chomsky (1) 型文法,该文法所描述的所有只含四个符号的句子是 (2) 。,(1) 3 (2)1010,0110,1001,0101,4.文法GS:Sb|bBBbS该文法所描述的语言是 ?A. L(G)=bi|i0 B. L(G)=b2i|i0C. L(G)=b2i+1|i0 D. L(G)=b2i+1|i1,C,5.一个语言的文法是 ?A.唯一的 B.不唯一 C.个数有限的,B,6.已知语言L=anbbn|n=1,写出对应文法。,答案:SaAbAaAb|b,7.文法GE: EE1|E0|Ea|Ec|a|b|c下列符号串是该文法

11、的句子的有: A.ab0 B.a0c01 C.aaa D.bc10,答案:B C D,8.文法GE: EE+T|TTT *F|FF(E)|a写出该文法句型 E+F*(E+T)的短语、直接短语和句柄。,9.文法GS:SAAB|if A then A else ABC|B+C|+CCD|C*D|*DDx|(A)|-D(1)哪些是终结符,哪些是非终结符?(2)构造下列符号串推导的语法树:if x+x then x*x else x写出其短语、直接短语和句柄。,11.文法GS:Sa|(T)|TT,S|S请给出句子(a,(a,a)的最左、最右推导。,正规文法正规式 举例,例:正规文法GS: SaA ,将

12、正规文法正规式。SaAaAAdAAaAd,SaA Sa AaA AdA Aa Ad,SaA|aAaA|dAAa|d,Sa(A|)A(a|d)AAa|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

13、|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 DaBDbDD,例12:文法GE: EE+T|T 构造预测分析表。TT*F|FFi|(E),解: (1)消除左递归:VN排列为 E,T,F消除E一切直

14、接左递归:ETE TT*F FiE+TE| TF F(E)消除T的一切直接左递归:ETE TFT FiE+TE| T*FT| F(E)F没有左递归。文法无左公共因子。所以,提取左公共因子和消除左递归后的文法为:ETE TFT FiE+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 , ( Fi

15、rst( 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) = +

16、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)构造预测分析表:,构造预测分

17、析表的方法: 对每个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

18、(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

19、,返 回,步骤四:根据项目集规范族 构造 DFA,例如:构造如下DFA对应的 LR(0)分析表,LR(0)分析表,另例,文法GE (1) E T + E (2) E T (3) T i * T (4) T i (5) T (E),步骤一:拓广文法 (0) S E (1) E T + E (2) E T (3) T i * T (4) T i (5) T (E) 步骤二:构造LR(0)项目集规范族(见下页) 步骤三:判别LR(0)项目集中是否存在冲突(移进-归约冲突 和 归约-归约冲突) 步骤四:构造DFA 步骤五:构造 LR(0)分析表 步骤六:分析句子,存在冲突,存在冲突,存在冲突,Follow(S)= # Follow(D)= , # 对于I3: Follow(S),= 故能使用SLR(1)分析,例 文法G: (0) S S (1) S rD (2) D D,i (3) D i,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报