19秋西交《编译原理》在线作业[满分答案]满分答案
西交《编译原理》在线作业
试卷总分:100 得分:100
一、单选题 (共 30 道试题,共 60 分)
如果一个编译程序能产生不同于其宿主机的机器代码,则称它为( )。
A.诊断编译程序
B.可变目标编译程序
C.优化编译程序
D.交叉编译程序
( )不是编译程序的组成部分。
A.语法分析程序
B.词法分析程序
C.设备管理程序
D.代码生成程序
现代多数实用编译程序所产生的目标代码都是一种可重定位的指令代码,在运行前必须借助于一个( )把各个目标模块,包括系统提供的库模块连接在一起,确定程序变量或常数在主存中的位置,装入内存中制定的起始地址,使之成为一个可运行的绝对指令代码的程序。
A.重定位程序
B.连接装配程序
C.诊断程序;
D.解释程序
一个数据类型通常包括三种要素,下面( )不是:
A.这种类型的数据对象可以具有的值
B.用于区别这种类型的数据对象的属性
C.对这种类型的数据对象的内存分配
D.可以作用于这种类型的数据对象的操作
Chomsky把文法分成四种类型,其中,( )也称正规文法。
A.3型
B.2型
C.1型
D.0型
语言的词法规则一般用Chomsky的( )型文法来描述:
A.3
B.2
C.1
D.0
程序语言的单词符号一般可以分为5种,下面( )不需要超前搜索。
A.算符和界符
B.标识符
C.常数
D.关键字
从左线性文法构造有限自动机时,通常自动机状态个数比文法非终结符号数多( )
A.4
B.2
C.1
D.0
正规表达式(ε|a|b)2表示的集合是( )
A.{ε,a,b,aa,bb,ab,ba}
B.{ε,ab,ba,aa,bb}
C.{a,b,ab,aa,ba,bb}
D.{ab,ba,aa,bb}
上下文无关文法可以用( )来描述。
A.翻译模式
B.正规文法
C.正则表达式
D.扩展的BNF
自上而下分析面临的四个问题中,不包括( )。
A.需消除左递归
B.虚假匹配
C.寻找可归约串
D.存在回朔
语法分析器接收以( )为单位的输入,并产生有关信息供以后各阶段使用。
A.语句;
B.表达式
C.单词
D.产生式
LR语法分析栈中存放的状态是识别( )的DFA状态。
A.项目
B.可归前缀
C.句柄;
D.前缀
算符优先分析法每次都是对( )进行归约:
A.素短语
B.简单短语
C.最左素短语
D.句柄
有文法G=({S},{a},{S→SaS,S→ε},S),该文法是( )。
A.算符优先文法
B.二义性文法
C.SLR(1)文法;
D.LL(1)文法
文法开始符号的所有( )作为属性计算前的初始值。
A.都不是
B.综合属性
C.继承属性和综合属性
D.继承属性
对应于产生式A→XY继承属性Y.y的属性计算,可能正确的语义规则是( )。
A.a:=f(Y.y);
B.a:=f(X.x,Y.y)
C.Y.y:=f(X.x)
D.Y.y:=f(A.a,Y.y)
布尔表达式计算时可以采用某种优化措施,比如A and B用if-then-else可解释为( )。
A.if A then true else false;
B.if A then true else B
C.if A then false else true;
D.if A then B else false;
为了便于优化处理,三地址代码可以表示成( )。
A.间接三元式
B.四元式
C.后缀式
D.三元式
使用三元式是为了( )。
A.避免把临时变量填入符号表
B.节省存储代码的空间
C.提高访问代码的速度
D.便于代码优化处理
表达式-a+b*(-c+d)的逆波兰式是( )。
A.ab+-cd+-*
B.a-bc-d+*+
C.a-b+c-d+*
D.a-b+c-d+*
教材介绍了三种符号表的构造和处理方法,其中( )中常把符号表组织成二叉树形式。
A.非线性组织
B.线性组织
C.杂凑(散列)组织
D.排序组织和二分法
编译程序使用( )区别标识符的作用域。
A.说明标识符的过程或函数的静态层次
B.说明标识符的过程或函数的动态层次
C.说明标识符的过程或函数名
D.标识符的行号
表达式作为实在参数可以传递给被调用的过程,替换过程体中的( )。
A.形式参数
B.局部变量
C.实在参数
D.全局变量
两个不同过程的活动,其生存期是( )。
A.重叠的,嵌套的
B.重叠的,不嵌套的
C.不重叠的,嵌套的
D.不重叠的,不嵌套的
在运行空间的划分中有一个单独的区域叫堆,用来存放( )。
A.静态数据
B.过程参数
C.目标代码
D.动态数据
Fortran语言的编译程序采用( )分配策略。
A.静态
B.栈式动态
C.最佳
D.堆式动态
以绝对机器代码为输出,所有地址均已定位,这种代码的优点是( )。
A.目标代码简短
B.目标代码执行效率高
C.可进一步优化
D.可立即执行
以( )作为输出,允许自程序单独编译。
A.绝对机器代码
B.汇编语言程序
C.可再定位机器语言
D.中间语言
评价一个代码生成器最重要的指标是( )。
A.代码的高效性
B.代码的维护性
C.代码的简洁性
D.代码的正确性
19秋西交《编译原理》在线作业[满分答案]多选题答案
二、判断题 (共 20 道试题,共 40 分)
在编译过程中,既可以将几个不同的阶段合为一遍,也可以把一个阶段的工作分为若干遍。( )
编译程序生成的目标程序都是可执行的程序。( )
一棵语法树表示了一个句型所有的不同推导过程,包括最右推导和最左推导。 ( )
可能有两个不同的文法G和G′,期中一个是二义的而另一个是无二义的,但是却有L(G)=L(G′)。( )
NFA M的非确定性表现在它有多个终态。( )
有穷自动机接受的语言是正则语言。( )
LL(k)文法都不是二义性的。( )
存在一种算法,能判定任何上下文无关文法是否是LL(1)的。 ( )
一个二义性文法可以是SLR文法或LALR文法。( )
LL(1)文法不能用LR(1)分析器来分析。( )
非终结符只有综合属性,由词法分析器提供。( )
S—属性文法一定是L—属性文法。( )
中间代码是独立于机器的,复杂性介于源语言和机器语言之间,便于进行与机器无关调换代码优化工作。( )
在程序设计语言中,一般来说,布尔表达式仅仅用于条件、循环等控制流语句中的条件表达式计算。( )
中间代码是独立于机器的,复杂性介于源语言和机器语言之间,便于进行与机器无关调换代码优化工作。( )
复写传播的目的使对某些变量的赋值变为无用。( )
对于允许递归调用的程序语言,程序运行时的存储分配策略不能采用静态的存储分配策略。( )
若一个程序语言的任何变量的存储空间大小和相互位置都能在编译时确定,则可采用静态分配策略。( )
编译程序在优化时可能要用到源程序中的注释。( )
复写传播的目的使对某些变量的赋值变为无用。( )
19秋西交《编译原理》在线作业[满分答案]历年参考题目如下: