西交《编译原理》在线作业-00001
试卷总分:100 得分:100
一、单选题 (共 30 道试题,共 60 分)
1.文法:G:S→xSx | y所识别的语言是( )。
A.xyx
B.(xyx)*
C.x*yx*
D.xnyxn (n≥0)
2.描述一个语言的文法是( )
A.唯一的
B.不唯一的
C.可能唯一
D.都不正确
3.编译程序是对( )。
A.汇编程序的翻译
B.高级语言程序的解释执行
C.机器语言的执行
D.高级语言的翻译
4.设有文法G[S]:S→S1|S0|Sa|Sc|a|b|c,下列符号串中是该文法的句子有( )
A.ab0
B.a0c01
C.a0b0a
D.bc10
5.在运行空间的划分中有一个单独的区域叫堆,用来存放________。
A.目标代码;
B.静态数据;
C.动态数据;
D.过程参数;
6.Chomsky把文法分成四种类型,其中,( )也称正规文法。
A.0型
B.1型
C.2型
D.3型
7.语法分析器接收以( )为单位的输入,并产生有关信息供以后各阶段使用。
A.表达式
B.产生式
C.单词
D.语句;
8.使用( )可以定义一个程序的意义。
A.语义规则
B.词法规则
C.产生规则
D.词法规则
9.文法G产生的()的全体是该文法描述的语言。
A.句型
B.终结符集
C.非终结符集
D.句子
10.文法S→aaS|abc定义的语言是( )。
A.{a2kbc|k>0}
B.{akbc|k>0}
C.{a2k-1bc|k>0}
D.{akakbc|k>0}
11.代多数实用编译程序所产生的目标代码都是一种可重定位的指令代码,在运行前必须借助于一个( )把各个目标模块,包括系统提供的库模块连接在一起,确定程序变量或常数在主存中的位置,装入内存中制定的起始地址,使之成为一个可运行的绝对指令代码的程序。
A.重定位程序
B.解释程序
C.连接装配程序
D.诊断程序
12.在一棵语法树中的结点的继承属性和综合属性之间的相互依赖关系可以由( )来描述。
A.抽象语法树
B.语法规则
C.依赖图
D.三地址代码
13.以绝对机器代码为输出,所有地址均已定位,这种代码的优点是________。
A.可立即执行;
B.可进一步优化;
C.目标代码简短;
D.目标代码执行效率高;
14.下列关于标识符和名字叙述中,正确的是( )。
A.标识符有一定的含义
B.名字是一个没有意义的字符序列
C.名字有确切的属性
D.都不正确
15.有文法G=({S},{a},{S→SaS,S→ε},S),该文法是( )。
A.LL(1)文法;
B.二义性文法;
C.算符优先文法;
D.SLR(1)文法;
16.布尔表达式计算时可以采用某种优化措施,比如A and B用if-then-else可解释为( )。
A.if A then true else B;
B.if A then B else false;
C.if A then false else true;
D.if A then true else false;
17.语言是()的集合
A.句子
B.产生式
C.符号串
D.句型
18.描述一个语言的文法是( )
A.唯一的
B.不唯一的
C.可能唯一,也可能不唯一
19.采用自上而下分析,必须( )。
A.消除回溯
B.消除左递归
C.消除右递归
D.提取公共左因子
20.已知文法G[S]:S→A1,A→A1|S0|0。与G等价的正规式是( )
A.0(0|1)*
B.1*|0*1
C.0(1|10)*1
D.1(10|01)*0
21.源程序是句子的集合,( )可以较好地反映句子的结构。
A.线性表
B.树
C.完全图
D.堆栈
22.堆式动态分配申请和释放存储空间遵守( )原则。
A.先请先放
B.先请后放
C.后请先放
D.任意
23.在自底向上的语法分析方法中,分析的关键是( )
A.寻找句柄
B.寻找句型
C.消除递归
D.选择候选式
24.有限状态自动机能识别( )。
A.上下文无关文法
B.上下文有关文法
C.正规文法
D.短语文法
25.下推自动机识别的语言是( )
A.0型语言
B.1型语言
C.2型语言
D.3型语言
26.所谓在程序中某个给定点是活跃的,是指如果在程序中,( )。
A.该点以后被引用
B.该点以后被计算
C.该点正在被计算
D.该点一直被计算
27.通常一个编译程序中,不仅包含词法分析,语法分析,语义分析,中间代码生成,代码优化,目标代码生成等六个部分,还应包括( )。
A.模拟执行器
B.解释器
C.表格处理和出错处理
D.符号执行器
28.语言的词法规则一般用Chomsky的( )型文法来描述
A.0
B.1
C.2
D.3
29.高级语言编译程序常用的语法分析方法中,递归下降分析法属于( )分析法。
A.自左至右
B.自顶向下
C.自底向上
D.自右向左
30.一个( )指明了在分析过程中的某时刻所能看到产生式多大一部分。
A.活前缀
B.前缀
C.项目
D.项目集
二、判断题 (共 20 道试题,共 40 分)
31.算符优先分析法不是一种规范规约法。( )
32.上下文无关文法比正规文法有更差的描述能力。( )
33.任何算符优先文法的句型中不会有两个相邻的非终结符号。( )
34.若某一个句型中出现了某一产生式的右部,则此右部不一定是该句型的句柄。( )
35.一棵语法树表示了一个句型所有的不同推导过程,包括最右推导和最左推导。 ( )
36.存在一种算法,能判定任何上下文无关文法是否是LL(1)的。 ( )
37.在不含嵌套过程的词法作用域中,若一个过程中有对名字a的非局部引用,则a必须在任何过程(或函数)外被说明。( )
38.在自下而上的语法分析中,语法树与分析树一定相同。( )
39.每个文法都能改写为LL(1)文法。
40.对任何正则表达式r,都存在一个DFAM,满足L(M)=L(r)。( )
41.在程序设计语言中,一般来说,布尔表达式仅仅用于条件、循环等控制流语句中的条件表达式计算。( )
42.一个二义性文法可以是SLR文法或LALR文法。( )
43.非终结符只有综合属性,由词法分析器提供。( )
44.正规文法产生的语言都可以用上下文无关文法来描述。( )
45.LL(k)文法都不是二义性的。( )
46.设M是一个NFA,并且L(M)={x,y,z},则M的状态数至少为4个。( )
47.一个文法所有句型的集合形成该文法所能接受的语言。( )
48.设r和s分别是正规式,则有L(r|s)=L(r)|L(s)。( )
49.算符优先分析法是一种规范规约法。( )
50.在归约过程的任一时刻,一个上下文无关文法的任何句型的直接短语一般都不是唯一的。( )