北语 20春《编译原理》作业1234Word下载.docx
《北语 20春《编译原理》作业1234Word下载.docx》由会员分享,可在线阅读,更多相关《北语 20春《编译原理》作业1234Word下载.docx(13页珍藏版)》请在冰点文库上搜索。
D.终结符号
B
5.用高级语言编写的程序经编译后产生的程序叫_____。
A.源程序
B.目标程序
C.连接程序
D.解释程序
6.文法分为四种类型,即0型、1型、2型、3型。
其中2型文法是_____。
A.短语文法
B.正则文法
C.上下文有关文法
D.上下文无关文法
7.编译程序使用_____区别标识符的作用域。
A.说明标识符的过程或函数名
B.说明标识符的过程或函数的静态层次
C.说明标识符的过程或函数的动态层次
D.标识符的行号
8.编译程序前三个阶段完成的工作是()。
A.词法分析、语法分析和代码优化
B.代码生成、代码优化和词法分析
C.词法分析、语法分析、语义分析和中间代码生成
D.词法分析、语法分析和代码优化
9.四种形式语言文法中,1型文法又称为_____文法。
A.短语结构文法
B.前后文无关文法
C.前后文有关文法
D.正规文法
10.把汇编语言程序翻译成机器可执行的目标程序的工作是由_____完成的。
A.编译器
B.汇编器
C.解释器
D.预处理器
二、判断题(每题4分,共15道小题,总分值60分)
1.后缀表示法表示表达式,其最大的优点是便于计算机处理表达式。
正确
2.所有的编译程序都需要生成中间代码。
错误
3.强度削弱的思想是把强度大的运算换算成强度小的运算。
4.LR法是自底向上语法分析方法。
()
5.决定目标代码的因素主要取决于具体的机器结构、指令格式、字长及寄存器的个数和种类,并与指令的语义和所用操作系统、存储管理等都密切相关。
6.所谓数据空间的分配,本质上看,是将程序中的每个名字与一个存储位置关联起来,该存储位置用以容纳名字的值。
7.递归下降法允许任一非终极符是直接左递归的。
8.正则文法其产生式为A->
a,A->
Bb,A,B∈VN,a、b∈VT。
9.若过程p第k次被调用,则p的DISPLAY表中就有k+1个元素。
10.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。
11.
12.
13.非终结符可以有综合属性,但不能有继承属性。
14.当参数通过引用传递时,也称作传地址,或者引用调用。
15.
20春《编译原理》作业_2
1.代码生成阶段的主要任务是()
A.把高级语言翻译成汇编语言
B.把高级语言翻译成机器语言
C.把中间代码变换成依赖具体机器的目标代码
D.把汇编语言翻译成机器语言
2.语法分析器则可以发现源程序中的_____。
A.语义错误
B.语法和语义错误
C.错误并校正
D.语法错误
3.编译程序是一种_____。
A.汇编程序
B.翻译程序
C.解释程序
D.目标程序
4.下列______优化方法不是针对循环优化进行的。
A.强度削弱
B.删除归纳变量
C.删除多余运算
D.代码外提
5.文法G所描述的语言是_____的集合。
A.文法G的字母表V中所有符号组成的符号串
B.文法G的字母表V的闭包V*中的所有符号串
C.由文法的开始符号推出的所有终结符串
D.由文法的开始符号推出的所有符号串
6.一个上下文无关文法G包括四个组成部分,它们是:
一组非终结符号,一组终结符号,一个开始符号,以及一组_____。
A.句子
B.句型
C.单词
D.产生式
7.若项目集Ik含有A->
α•,则在状态k时,仅当面临的输入符号a∈FOLLOW(A)时,才采取“A->
α•”动作的一定是_____。
A.LALR文法
B.LR(0)文法
C.LR
(1)文法
D.SLR
(1)文法
8.一个句型中称为句柄的是该句型的最左()
A.非终结符号
B.短语
C.句子
D.直接短语
9.如果文法G是无二义的,则它的任何句子α_____。
A.最左推导和最右推导对应的语法树必定相同
B.最左推导和最右推导对应的语法树可能不同
C.最左推导和最右推导必定相同
D.可能存在两个不同的最左推导,但它们对应的语法树相同
10.编译过程中,语法分析器的任务就是_____。
(1)分析单词是怎样构成的
(2)分析单词串是如何构成语句和说明的(3)分析语句和说明是如何构成程序的(4)分析程序的结构
A.
(2)(3)
B.
(2)(3)(4)
C.
(1)
(2)(3)
D.
(1)
(2)(3)(4)
1.可以将编译程序的几个不同阶段组织成为一遍,也可以把一个阶段分成若干遍完成。
2.LR
(1)分析表构造的思想和方法是构造其他LR分析表的基础。
3.解释程序适用于COBOL和FORTRAN语言。
4.词法分析程序的功能是读入源程序,输出单词符号。
5.“用高级语言书写的源程序都必须通过编译,产生目标代码后才能投入运行。
”这种说法。
6.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。
7.
8.一个语义子程序描述了一个文法所对应的翻译工作。
9.静态数组的存储空间可以在编译时确定。
10.
11.DFA可以通过多条路径识别一个符号串。
12.所谓循环就是程序中那些可能反复执行的代码序列。
13.最左归约也称为规范归约。
14.
15.在中间代码优化中循环上的优化主要有不变表达式外提和削减运算强度。
20春《编译原理》作业_3
1.文法分为四种类型,即0型、1型、2型、3型。
其中0型文法是_____。
2.一个文法所描述的语言是_____。
A.唯一的
B.不唯一的
C.可能唯一,好可能不唯一
D.都不对
3.与编译系统相比,解释系统_____。
A.比较简单,可移植性好,执行速度快
B.比较复杂,可移植性好,执行速度快
C.比较简单,可移植性差,执行速度慢
D.比较简单,可移植性好,执行速度慢
4.文法G产生的_____的全体是该文法描述的语言。
A.句型
B.终结符集
C.非终结符集
D.句子
5.在LR分析法中,分析栈中存放的状态是识别规范句型_____的DFA状态。
A.句柄
B.前缀
C.活前缀
D.LR(0)项目
6.
扫描器所完成的任务是从字符串形式的源程序中识别出一个个具有独立含义的最小语法单位即()。
A.字符
B.单词
D.句型
7.汇编程序是将汇编语言程序翻译成()。
8.文法G:
S→xSx|y所识别的语言是_____。
A.xyx
B.(xyx)*
C.xnyxn(n≥0)
D.x*yx*
9._____和代码优化部分不是每个编译程序都必需的。
A.语法分析
B.中间代码生成
C.词法分析
D.目标代码生成
10.审查每个算符是否具有语言规范允许的运算对象是()的工作。
B.语义分析
C.中间代码生成
D.代码优化
E.目标代码生成
1.一个句型的句柄一定是文法某产生式的右部。
2.代码外提是把产生的结果独立于循环执行次数的表达式,放到循环的前面。
3.动态存储分配方式只有栈式。
4.若一个句型中出现了某产生式的右部,则此右部一定是该句型的句柄。
5.
6.在程序中标识符的出现仅为使用性的。
7.PL/0编译程序的语法分析采用了自顶向下的递归子程序法。
8.语法分析时必须先消除文法中的左递归。
9.代码生成器的设计要着重考虑目标代码的质量问题,而衡量目标代码的质量主要从占用空间和执行效率两个方面综合考虑。
10.衡量目标代码的质量主要从占用空间和执行效率两个方面综合考虑。
11.一个算符优先文法可能不存在算符优先函数与之对应。
12.在SLR
(1)分析法的名称中,S的含义是简单的。
13.产生式是用于定义词法成分的一种书写规则。
14.一个确定有穷自动机有且只有一个终态。
15.SLR
(1)文法,其思想是基于容许LR(0)规范族中有冲突的项目集(状态)用向前查看一个符号的办法来进行处理,以解决冲突。
20春《编译原理》作业_4
1.
A.(A)
B.(B)
C.(C)
D.(D)
2.四元式之间的联系是通过_____实现的。
A.指示器
B.临时变量
C.符号表
D.程序变量
3.词法分析器的输出结果是_____。
A.单词的种别编码
B.单词在符号表中的位置
C.单词的种别编码和自身值
D.单词自身值
4.一个上下文无关文法G包括四个组成部分,它们是:
一组_____,一组终结符号,一个开始符号,以及一组产生式。
D.非终结符号
5.在自底向上的语法分析方法中,分析的关键是_____。
A.寻找句柄
B.寻找句型
C.消除递归
D.选择候选式
6._____是两类程序语言处理程序。
A.高级语言程序和低级语言程序
B.解释程序和编译程序
C.编译程序和操作系统
D.系统程序和应用程序
7.若一个文法是递归的,则它所产生的语言的句子_____。
A.是无穷多个
B.是有穷多个
C.是可枚举的
D.个数是常量
8.解释程序处理语言时,大多数采用的是_____方法。
A.源程序命令被逐个直接解释执行
B.先将源程序转化为中间代码,再解释执行
C.先将源程序解释转化为目标程序,再执行
D.以上方法都可以
9.编写一个计算机高级语言的源程序后,到正式上机运行之前,一般要经过_____这几步:
(1)编辑
(2)编译(3)连接(4)运行
A.
(1)
(2)(3)(4)
B.
(1)
(2)(3)
C.
(1)(3)
D.
(1)(4)
10.()是在词法分析的基础上将单词序列分解成各类语法短语。
1.简单优先文法允许任意两个产生式具有相同右部。
2.
3.目标代码的优化是在目标代码生成以后进行的。
4.堆栈区用以存放编译时能确定所占用空间的数据。
6.在编译中进行语法检查的目的是为了发现程序中所有错误。
7.仅考虑一个基本块,不能确定一个赋值是否真是无用的。
8.
9.通常编译过程分成前端和后端,后端是由这样一些阶段组成:
这些阶段的工作主要依赖于源语言而与目标机无关。
10.逆波兰表示法表示表达式时无需使用括号。
11.符号表中的信息栏中登记了每个名字的属性和特征等有关信息,如类型、种属、所占单元大小、地址等等。
12.削减运算强度破坏了临时变量在一基本块内仅被定义一次的特性。
13.优化使得运行速度加快或者占用存储空间减少,或者两者都有。
14.编译和运行是两个独立分开的阶段。
15.一个LR分析器由3个部分组成,其中分析表或分析函数,也可以称为驱动程序。