编译原理作业集-第七章.doc

编译原理作业集-第七章.doc

ID:54976164

大小:207.00 KB

页数:18页

时间:2020-04-25

编译原理作业集-第七章.doc_第1页
编译原理作业集-第七章.doc_第2页
编译原理作业集-第七章.doc_第3页
编译原理作业集-第七章.doc_第4页
编译原理作业集-第七章.doc_第5页
资源描述:

《编译原理作业集-第七章.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、编译原理作业集-第七章语义分析和中间代码产生第七章语义分析和中间代码产生本章要点1.中间语言,各种常见中间语言形式;2.说明语句、赋值语句、布尔表达式、控制语句等的翻译;3.过程调用的处理;4.类型检查;本章目标掌握和理解中间语言,各种常见中间语言形式;各种语句到中间语言的翻译;以及类型检查等内容。本章重点1.中间代码的几种形式,它们之间的相互转换:四元式、三元式、逆波兰表示;3.赋值语句、算术表达式、布尔表达式的翻译及其中间代码格式;4.各种控制流语句的翻译及其中间代码格式;5.过程调用的中间代码格式;6.类型检查;本章难点1.各种语句的翻译;2

2、.类型系统和类型检查;作业题一、单项选择题:1.布尔表达式计算时可以采用某种优化措施,比如AandB用if-then-else可解释为_______。a.ifAthentrueelseB;b.ifAthenBelsefalse;c.ifAthenfalseelsetrue;d.ifAthentrueelsefalse;2.为了便于优化处理,三地址代码可以表示成________。a.三元式b.四元式c.后缀式d.间接三元式-18-西安理工大学计算机科学与工程学院,张发存编写2021-7-29,16:47:18--编译原理作业集-第七章语义分析和中间代

3、码产生3.使用三元式是为了________:a.便于代码优化处理b.避免把临时变量填入符号表c.节省存储代码的空间d.提高访问代码的速度4.表达式-a+b*(-c+d)的逆波兰式是________。a.ab+-cd+-*;b.a-b+c-d+*;c.a-b+c-d+*;d.a-bc-d+*+;5.赋值语句x:=-(a+b)/(c-d)-(a+b*c)的逆波兰式表示是_______。a.xab+cd-/-bc*a+-:=;a.xab+/cd-bc*a+--:=;a.xab+-cd-/abc*+-:=;a.xab+cd-/abc*+--:=;6.在一棵

4、语法树中结点的继承属性和综合属性之间的相互依赖关系可以由________来描述。a.抽象语法树;b.语法规则;c.依赖图;d.三地址代码;7.按照教材中的约定,三地址语句ifxrelopythenL表示成四元式为。a.(relop,x,y,L);b.(relop,L,x,y);c.(relop,x,L,y);d.(L,x,y,relop);8.在编译程序中,不是常见的中间语言形式。a.波兰式;b.三元式;c.四元式;d.抽象语法树;9.在编译程序中安排中间代码生成的目的是________。a.便于提高编译效率;b.便于提高分析的正确性;c.便于代码

5、优化和目标程序的移植;d.便于提高编译速度;10.按照教材中的约定,下面不是类型表达式:a.boolean;b.type-error;c.real;d.DAG;11.一个Pascal函数functionf(a,b:char):↑integer;……其作用域类型是:a.char×integer;b.char×char;c.char×pointer(integer);d.integer×integer;12.因为标识符可用于多种情况,比如常量标识符、变量标识符、过程标识符等等。因此,在符号表中为了给出各个符号的标志,常给标识符引入一个属性kind,然后

6、在相应产生式的语义动作中添加给kind属性赋值的语句。比如,在在产生式D®id:T的语义动作中添加赋值语句id.kind=。a.VAR;b.CONSTANT;c.PROC;d.FUNC;13.下面情况下,编译器需要创建一张新的符号表。a.过程调用语句;b.标号说明语句;c.数组说明语句;d.记录说明语句;14.函数functionf(a,b:char):↑integer;…所以f函数的类型表达式为:a.char×char→pointer(integer);b.char×char→pointer;c.char×char→integer;d.char×

7、char→integer(pointer)15.如果一个语言的编译器能保证编译通过的程序,在运行时不会出现类型错误,则称该语言是。a.静态的;b.强类型的;c.动态的;d.良类型的;一.答案:1.b;2.d;3.b;4.d;5.c;6.c.;7.a;8.a;9.c;10.d;11.b;12.a;13.d;14.a;15.b;-18-西安理工大学计算机科学与工程学院,张发存编写2021-7-29,16:47:18--编译原理作业集-第七章语义分析和中间代码产生二、填空题:1.语法分析是依据语言的语法规则进行的,中间代码产生是依据语言的________

8、规则进行的。2.多目运算x:=y[i]的三元式表示为两部分:________________和______________

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。