编译原理(习题课)(三)
- 格式:pdf
- 大小:313.32 KB
- 文档页数:40


第八节 习题一、单项选择题
1、将编译程序分成若干个“遍”是为了 。
a.提高程序的执行效率
b.使程序的结构更加清晰
c.利用有限的机器内存并提高机器的执行效率
d.利用有限的机器内存但降低了机器的执行效率
2、构造编译程序应掌握 。
a.源程序 b.目标语言
c.编译方法 d.以上三项都是
3、变量应当 。
a.持有左值 b.持有右值
c.既持有左值又持有右值 d.既不持有左值也不持有右值
4、编译程序绝大多数时间花在 上。
a.出错处理 b.词法分析
c.目标代码生成 d.管理表格
5、 不可能是目标代码。
a.汇编指令代码 b.可重定位指令代码
c.绝对指令代码 d.中间代码
6、使用 可以定义一个程序的意义。
a.语义规则 b.词法规则
c.产生规则 d.词法规则
7、词法分析器的输入是 。
a.单词符号串 b.源程序
c.语法单位 d.目标程序
8、中间代码生成时所遵循的是- 。
a.语法规则 b.词法规则
c.语义规则 d.等价变换规则
9、编译程序是对 。
a.汇编程序的翻译 b.高级语言程序的解释执行
c.机器语言的执行 d.高级语言的翻译
10、语法分析应遵循 。
a.语义规则 b.语法规则
c.构词规则 d.等价变换规则
解答
1、将编译程序分成若干个“遍”是为了使编译程序的结构更加清晰,故选b。
2、构造编译程序应掌握源程序、目标语言及编译方法等三方面的知识,故选d。
3、对编译而言,变量既持有左值又持有右值,故选c。
Lw.《编译原理》课后习题答案第一章
第 1 章引论
第 1 题
解释下列术语:
(1)编译程序
(2)源程序
(3)目标程序
(4)编译程序的前端
(5)后端
(6)遍
答案:
(1) 编译程序:如果源语言为高级语言,目标语言为某台计算机上的汇编语言或机器语
言,则此翻译程序称为编译程序。
(2) 源程序:源语言编写的程序称为源程序。
(3) 目标程序:目标语言书写的程序称为目标程序。
(4) 编译程序的前端:它由这样一些阶段组成:这些阶段的工作主要依赖于源语言而与
目标机无关。通常前端包括词法分析、语法分析、语义分析和中间代码生成这些阶
段,某些优化工作也可在前端做,也包括与前端每个阶段相关的出错处理工作和符
号表管理等工作。
(5) 后端:指那些依赖于目标机而一般不依赖源语言,只与中间代码有关的那些阶段,
即目标代码生成,以及相关出错处理和符号表操作。
(6) 遍:是对源程序或其等价的中间语言程序从头到尾扫视并完成规定任务的过程。
第 2 题
一个典型的编译程序通常由哪些部分组成?各部分的主要功能是什么?并画出编译程
序的总体结构图。
答案:
一个典型的编译程序通常包含 8 个组成部分,它们是词法分析程序、语法分析程序、语
义分析程序、中间代码生成程序、中间代码优化程序、目标代码生成程序、表格管理程序和
错误处理程序。其各部分的主要功能简述如下。
词法分析程序:输人源程序,拼单词、检查单词和分析单词,输出单词的机内表达形式。
语法分析程序:检查源程序中存在的形式语法错误,输出错误处理信息。
语义分析程序:进行语义检查和分析语义信息,并把分析的结果保存到各类语义信息表
中。
中间代码生成程序:按照语义规则,将语法分析程序分析出的语法单位转换成一定形式
的中间语言代码,如三元式或四元式。
中间代码优化程序:为了产生高质量的目标代码,对中间代码进行等价变换处理。
《编译原理》模拟试题六
一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分)
1.设r和s分别是正规式,则有L(r|s)=L(r)L(s)。(×)
2.确定的自动机以及不确定的自动机都能正确地识别正规集。(√)
3.词法分析作为单独的一遍来处理较好。 (× )
4.构造LR分析器的任务就是产生LR分析表。 (√)
5.规范归约和规范推导是互逆的两个过程。 (× )
6.同心集的合并有可能产生新的“移进”/“归约”冲突。 (× )
7.LR分析技术无法适用二义文法。 (× )
8.树形表示和四元式不便于优化,而三元式和间接三元式则便于优化。 (×)
9.程序中的表达式语句在语义翻译时不需要回填技术。 (√)
10.对中间代码的优化依赖于具体的计算机。 (× )
二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分)
1.编译程序绝大多数时间花在_____ 上。
A.( ) 出错处理 B.( ) 词法分析
C.( ) 目标代码生成 D.( ) 表格管理
2. 编译程序是对_____。
A.( ) 汇编程序的翻译 B.( ) 高级语言程序的解释执行
C.( ) 机器语言的执行 D.( ) 高级语言的翻译 3. 采用自上而下分析,必须_____。
A.( ) 消除左递归 B.( ) 消除右递归
C.( ) 消除回溯 D.( ) 提取公共左因子
4.在规范归约中,用_____来刻画可归约串。
A.( )直接短语 B.( )句柄
C.( )最左素短语 D.( )素短语
5. 若a为终结符,则A->α · aβ为_____项目。
A.( )归约 B.( ) 移进 C.( ) 接受 D.( ) 待约
《编译原理》试题B卷 第 1 页 共 4 页
☆
☆
密
封
线
内
不
要
答
题
☆
☆
姓 名
学 号
班 级
平顶山工学院2008—2009学年第二学期期末考试(查)
《编译原理》试题(B卷)
供 计算机科学与技术 专业 0614061/2/3 班使用 2009年5月
题 号 一 二 三 四 五 六 七 总 分
得 分
阅卷人
本套试卷共4页
一、填空题:(每空1分,共10分)
1、符号表项的组织常采用线性法、二分法和( )。
2、整个编译过程可以划分成五个阶段:( )、语法分析阶段、( )、( )和目标代码生成阶段。
3、对于文法G,仅含终结符号的句型称为( )。
4、逆波兰式ab+c+d*e-所表达式为( )。
5、语言翻译常用的两种形式是( )和( )。
6、词法分析器输出的是单词符号,语法分析器输出的是( )。
二、选择题:(每空2分,共10分)
1、3型文法是( ),( )是语法分析使用的文法。
A.短语文法 B.上下文有关文法 C.上下文无关文法 D.正规文法
2、语法分析是依据语言的( )规则进行的,中间代码产生是依据语言的( )规则进行的。
A.语法, 推导 B.语义,产生式 C.语法, 语义 D.推导, 产生式
3、错误“变量类型声明不一致”将在( )阶段发现。
A.词法分析 B.语法分析 C.语义分析 D.目标代码生成