地大17秋《编译原理与技术》在线作业12题目
地大《编译原理与技术》在线作业一一、单选题:
1.在优化中,如果信息是从整个程序求得的,则称之为()方法。 (满分:4)
A.局部优化
B.全局优化
2.DAG是可有多个父节点的特殊的树,表示()。 (满分:4)
A.有环有向图
B.无环有向图
C.有环无向图
D.无环无向图
3.L-属性文法的最大特点就是产生式右部符号的()不依赖于其右部符号的任何属性。 (满分:4)
A.继承属性
B.综合属性
4.实际程序设计语言都有一些关键字,如果语言里规定关键字不能作为用户定义的标识符,则称它们为()。 (满分:4)
A.保留字
B.命令字
5.优化的必要性体现在()。 (满分:4)
A.受到高级语言能力的限制
B.源程序可能是由其他系统自动生成的
C.在中间代码生成阶段产生出很多明显可优化的部分
D.以上全对
6.Lex是由贝尔实验室M.E Lesk和E. Schmidt开发的()。 (满分:4)
A.词法分析器生成器
B.语法分析器生成器
C.语义分析器生成器
D.中间代码生成器
7.识别保留字的方法可以分为两大类:一类是用();另一类是不用保留字表。 (满分:4)
A.保留字表
B.关键字表
8.()的主要思想是:首先对于每个语法符号引进相关的属性符号;其次对于每个产生式写出计算属性值的属性规则。 (满分:4)
A.动作文法
B.属性文法
9.程序设计语言的语义可分为静态语义和动态语义。所谓()语义是指在编译阶段能检查的语义。 (满分:4)
A.静态
B.动态
10.动作符可出现于产生式()的任何地方,其主要作用是用来指明某种语义动作。 (满分:4)
A.左部
B.右部
C.上部
D.下部
11.LR分析方法属于()分析方法。 (满分:4)
A.自顶向下
B.自底向上
12.常见的查表方法有顺序查表法、平分查表法和()。 (满分:4)
A.散列查表法
B.排序查表法
13.属性分为继承属性和综合属性两类,其中开始符没有()属性,在开始时要确定。 (满分:4)
A.继承属性
B.综合属性
14.如果在推导时选择的是句型中的最左非终极符,则称这中推导为最()推导。 (满分:4)
A.左
B.右
15.()可出现于表达式中,而()则不可出现于表达式中。 (满分:4)
A.函数调用;过程调用
B.过程调用;函数调用
16.有限自动机(简称自动机)分为确定有限自动机()和非确定有限自动机()。 (满分:4)
A.DFA;NFA
B.NFA;DFA
17.寄存器的使用要遵循一定准则,正确的使用准则是()。 (满分:4)
A.寄存器先行准则
B.寄存器活跃准则
C.寄存器多载准则
D.以上全对
18.一个上下文无关文法(CFG)由()部分组成。 (满分:4)
A.3
B.4
C.5
D.6
19.描述程序设计语言中单词的工具不包括()。 (满分:4)
A.正则文法
B.正则表达式
C.自动机
D.计算树
20.在声明中,()部分不产生目标代码,因此不需要产生中间代码。 (满分:4)
A.标号声明
B.常量声明
C.类型声明
D.以上全对
21.编译器通常按需要把寄存器分为三组使用:可分配寄存器、保留寄存器和零用寄存器,其中()是用来打“短工”的寿命非常短的寄存器。 (满分:4)
A.可分配寄存器
B.保留寄存器
C.零用寄存器
D.以上全对
22.多元式中间代码的计算顺序通常是,先()后()。 (满分:4)
A.左分量;右分量
B.右分量;左分量
23.使用中间代码的主要好处是:便于移植,以及()。 (满分:4)
A.便于修改
B.便于优化
C.便于掌握
D.以上全对
24.基本块是这样一个程序段,即它有()入口和()出口。 (满分:4)
A.一个;一个
B.一个;N个
C.N个;一个
D.N个;N个
25.变量声明是否生成中间代码要看情况,如果一个变量是用可变长类型来声明的,则()产生目标代码,因此()产生中间代码。 (满分:4)
A.需要;需要
B.需要;不需要
C.不需要;不需要
D.不需要;需要
地大《编译原理与技术》在线作业二
一、单选题:
1.循环优化中,对于每个循环一般都要识别其(),需要时还要识别循环的必经点等信息。 (满分:4)
A.入口部分
B.重复部分
C.出口部分
D.以上全对
2.自底向上分析的动作共有四种:移入、归约、成功、报错。其中最主要的动作是()动作。 (满分:4)
A.移入、归约
B.移入、成功
C.移入、报错
D.成功、报错
3.程序结构的描述方法主要有两种:一是用所谓的巴克斯范式(BNF);一是用所谓的()。 (满分:4)
A.词法图
B.文法图
C.语法图
D.自动机
4.()以文本文件方式存在,即以字符串形式存在。 (满分:4)
A.源程序
B.目标代码
C.中间代码
D.目标程序
5.优化的主要对象是()。 (满分:4)
A.深层循环
B.下标变量的地址计算
C.A和B
6.属性分为继承属性和综合属性两类,其中开始符没有()属性,在开始时要确定。 (满分:4)
A.继承属性
B.综合属性
7.程序设计语言的语义可分为静态语义和动态语义。所谓()语义是指在编译阶段能检查的语义。 (满分:4)
A.静态
B.动态
8.()可出现于表达式中,而()则不可出现于表达式中。 (满分:4)
A.函数调用;过程调用
B.过程调用;函数调用
9.描述程序设计语言中单词的工具不包括()。 (满分:4)
A.正则文法
B.正则表达式
C.自动机
D.计算树
10.如果在推导时选择的是句型中的最左非终极符,则称这中推导为最()推导。 (满分:4)
A.左
B.右
11.Yacc(Yet another compiler-compiler)是()分析器的自动生成器。 (满分:4)
A.LALR(1)
B.SLR(1)
C.LL(1)
D.LR(1)
12.词法分析器可有两种,一种是它作为语法分析的一个子程序,另一种是它作为编译器的独立一遍任务。实际的编译器一般都采用()方式。 (满分:4)
A.子程序
B.独立一遍
13.编译程序通常分为前端和后端,通常()是指词法分析到中间代码生成的整个阶段。 (满分:4)
A.前端
B.后端
14.常量表达式是指取固定值的表达式,而其优化的意思是,把表达式的值由编译器()地计算出来并以此替换表达式。 (满分:4)
A.静态
B.动态
15.DAG是可有多个父节点的特殊的树,表示()。 (满分:4)
A.有环有向图
B.无环有向图
C.有环无向图
D.无环无向图
16.在声明中,()部分不产生目标代码,因此不需要产生中间代码。 (满分:4)
A.标号声明
B.常量声明
C.类型声明
D.以上全对
17.实际程序设计语言都有一些关键字,如果语言里规定关键字不能作为用户定义的标识符,则称它们为()。 (满分:4)
A.保留字
B.命令字
18.()是用于代码生成的最一般的中间代码形式,开始主要用来表示语句中出现的表达式。 (满分:4)
A.栈式
B.三元式
C.四元式
D.抽象语法树(AGT)
19.基本块是这样一个程序段,即它有()入口和()出口。 (满分:4)
A.一个;一个
B.一个;N个
C.N个;一个
D.N个;N个
20.使用中间代码的主要好处是:便于移植,以及()。 (满分:4)
A.便于修改
B.便于优化
C.便于掌握
D.以上全对
21.程序设计语言的描述主要包括两部分,其一是()描述部分,其二是语义描述部分。 (满分:4)
A.词法
B.文法
22.类型的等价性有按名等价和按结构等价两类。()等价是:如果类型是个类型名,则两个类型等价当且仅当其名字相同。 (满分:4)
A.按名等价
B.按结构等价
23.动作符可出现于产生式()的任何地方,其主要作用是用来指明某种语义动作。 (满分:4)
A.左部
B.右部
C.上部
D.下部
24.常见的查表方法有顺序查表法、平分查表法和()。 (满分:4)
A.散列查表法
B.排序查表法
25.LR分析方法属于()分析方法。 (满分:4)
A.自顶向下
B.自底向上
页:
[1]