《编译原理》习题答案
一、单项选择题(本大题共164小题,每小题2分)
1、如果一个编译程序能产生不同于其宿主机的机器代码,则称它为( C )。
A、诊断编译程序 B、优化编译程序 C、交叉编译程序 D、可变目标编译程序 2、( C )不是编译程序的组成部分。
A、词法分析程序 B、代码生成程序 C、设备管理程序 D、语法分析程序
3、现代多数实用编译程序所产生的目标代码都是一种可重定位的指令代码,在运行前必须借助于一个( C )把各个目标模块,包括系统提供的库模块连接在一起,确定程序变量或常数在主存中的位置,装入内存中制定的起始地址,使之成为一个可运行的绝对指令代码的程序。
A、重定位程序 B、解释程序 C、连接装配程序 D、诊断程序; 4、产生正则语言的文法为(D)。
A、0型
B、1型
C、2型
D、3型
5、(A)是一种典型的解释型语言。
A、BASIC
B、C
C、FORTRAN
D、PASCAL
6、把汇编语言程序翻译成机器可执行的目标程序的工作是由(B)完成的。
A、 编译器
B、汇编器
C、解释器
D、预处理器
7、用高级语言编写的程序经编译后产生的程序叫(B)
A、 源程序
B、目标程序
C、连接程序
D、解释程序
8、文法G:S→b|∧(T)
T→T,S|S
则FIRSTVT(T)(C)。
A、{b,∧,(}
B、{b,∧,)}
C、{b,∧,(,,}
D、{b,∧,),,}
9、通常一个编译程序中,不仅包含词法分析,语法分析,语义分析,中间代码生成,代码优化,目标代码生成等六个部分,还应包括(C)。
A、 模拟执行器
B、解释器 C、表格处理和出错处理 D、符号执行器
10、编译程序绝大多数时间花在(D)上。
A、 出错处理
B、词法分析
C、目标代码生成
D、表格管理
11、设文法为:S→SA|A
A→a|b
则对句子aba,下面(D)是规范推导。
西安交通大学网络教育学院
A、SSASAAAAAaAAabAaba B、SSASAAAAAAAaAbaaba C、SSASAASAaSbaAbaaba D、SSASaSAaSbaAbaaba
12、Chomsky把文法分成四种类型,其中,( D )也称正规文法 A、0型 B、1型 C、2型 D、3型 13、源程序是句子的集合,(B)可以较好地反映句子的结构。
A.、线性表
B、树
C、完全图
D、堆栈
14、词法分析器的输出结果是(D)。
A、单词自身值
B、单词在符号表中的位置 D、单词的种别编码和自身值
C、单词的种别编码 15、词法分析器不能(D)
A、识别出数值常量
B、过滤源程序中的注释 D、发现括号不匹配
C、扫描源程序并识别记号
16、文法:G:S→xSx | y所识别的语言是(D)。
A、 xyx
B、(xyx)*
C、x*yx*
D、xnyxn (n≥0)
17、如果文法G是无二义的,则它的任何句子α(A)
A、最左推导和最右推导对应的语法树必定相同 B、最左推导和最右推导对应的语法树可能不同 C、最左推导和最右推导必定相同
D、 可能存在两个不同的最左推导,但它们对应的语法树相同 18、语言的词法规则一般用Chomsky的( D )型文法来描述: A、0 19、文法 S→(L)|a L→L,S|S
中的终结符号是( B )。
A、S B、, C、L D、| 20、文法G所描述的语言是( D )的集合。
B、1
C、2
D、3
西安交通大学网络教育学院
A、文法G的字母表中的所有符号组成的符号串 B、文法G的字母表的闭包*中的所有符号串 C、文法G的识别符号推出的所有符号串 D、文法G的识别符号推出的所有终结符号串
21、语法分析器接收以( C )为单位的输入,并产生有关信息供以后各阶段使用。 A、表达式 B、产生式 C、单词 D、语句; 22、LR(k)文法( A )。
A、都是无二义性的 B、都是二义性的 C、一部分是二义性的 D、无法判定 23、如果一个编译程序能产生不同于其宿主机的机器代码,则称它为:( C )。
A、诊断编译程序 B、优化编译程序 C、交叉编译程序 D、可变目标编译程序 24、许多广为使用的语言,如Fortran、C、Pascal等,属于( A )。
A、强制式语言 B、应用式语言 C、基于规则的语言 D、面向对象的语言 25、设G是一个文法,S是开始符号。若S*,(VTVN)*,则称是一个( B )。 A、句子 B、句型 C、推导 D、语言
26、赋值语句x:=-(a+b)/(c-d)-(a+b*c)的逆波兰式表示是( C )。 A、xab+cd-/-bc*a+-:= C、xab+/cd-bc*a+--:= C、xab+-cd-/abc*+-:= D、xab+cd-/abc*+--:=
27、在一棵语法树中的结点的继承属性和综合属性之间的相互依赖关系可以由( C )来描述。 A、抽象语法树 B、语法规则 C、依赖图 D、三地址代码;
28、( C )语言具有这样的特点:没有分程序结构;过程定义不允许嵌套;允许过程嵌套定义。 A、Fortran B、Pascal C、C D、都不是 29、Pascal中过程说明的局部变量地址分配在( B )。 A、调用者的数据区中 B、被调用者的数据区中 C、主程序的数据区中 D、公共数据区中
30、一个数据类型通常包括三种要素,下面( C )不是:
A、用于区别这种类型的数据对象的属性 B、这种类型的数据对象可以具有的值 C、对这种类型的数据对象的内存分配 D、可以作用于这种类型的数据对象的操作 31、正则文法(A)二义性的。
A、 可以是
B、一定不是
C、一定是
32、(B)这样一些语言,它们能被确定的有穷自动机识别,但不能用正则表达式表示。
A、 存在
B、不存在
C、无法判定是否存在
西安交通大学网络教育学院
33、给定文法A→bA | ca,为该文法句子的是(C)
A、 bba
B、cab
C、bca
D、cba
34、设有文法G[S]:SS1|S0|Sa|Sc|a|b|c,下列符号串中是该文法的句子有(D)
A、 ab0
B、a0c01
C、a0b0a
D、bc10
35、文法G产生的(D)的全体是该文法描述的语言。
A、 句型
B、终结符集
C、非终结符集
D、句子
36、若文法G定义的语言是无限集,则文法必然是(A) 递归的
B、上下文无关的
C、二义性的
D、无二义性的
37、一个数据类型通常包括三种要素,下面( C )不是:
A、用于区别这种类型的数据对象的属性 B、这种类型的数据对象可以具有的值 C、对这种类型的数据对象的内存分配 D、可以作用于这种类型的数据对象的操作 38、在编译方法中,动态存储分配的含义是( A )。
A、在运行阶段对源程序中的量进行分配 B、在编译阶段对源程序中的量进行分配 C、在编译阶段对源程序中的量进行分配,在运行时这些量的地址可以根据需要修改 D、以上都不是
39、以绝对机器代码为输出,所有地址均已定位,这种代码的优点是( A )。
A、可立即执行 B、可进一步优化 C、目标代码简短 D、目标代码执行效率高 40、以( B )作为输出,允许自程序单独编译。
A、绝对机器代码 B、可再定位机器语言 C、汇编语言程序 D、中间语言 41、评价一个代码生成器最重要的指标是( A )。
A、代码的正确性 B、代码的高效性 C、代码的简洁性 D、代码的维护性。 42、文法G:E→E+T|T
T→T*P|P P→(E)|I
则句型P+T+i的句柄和最左素短语为(B)。
A、P+T和i B、P和P+T C、i和P+T+I
D、P和T
43、语言的词法规则一般用Chomsky的( D )型文法来描述: A、0 B、1
C、2
D、3
44、描述一个语言的文法是(B)
A、 唯一的
B、不唯一的
C、可能唯一
西安交通大学网络教育学院
45、一个文法所描述的语言是(A)
A、 唯一的
B、不唯一的
C、可能唯一
46、采用自上而下分析,必须(A)。
A、消除回溯
B、消除左递归 D、提取公共左因子
C、消除右递归
47、编译过程中,语法分析器的任务是(A)
① 分析单词的构成 ② 分析单词串如何构成语句 ③ 分析语句是如何构成程序 ④ 分析程序的结构 A、②③
B、④
C、①②③④
D、②③④
48、程序语言的单词符号一般可以分为5种,下面( B )不需要超前搜索。 A、关键字 B、标识符 C、常数 D、算符和界符 49、由文法的开始符经0步或多步推导产生的文法符号序列是(C)。
A、短语
B、句柄
C、句型
D、句子
50、从左线性文法构造有限自动机时,通常自动机状态个数比文法非终结符号数多( D )。 A、4 B、2 C、0 D、1
51、正规表达式(ε|a|b)2表示的集合是( D )。
A、{ε,ab,ba,aa,bb} B、{ab,ba,aa,bb}
C、{a,b,ab,aa,ba,bb} D、{ε,a,b,aa,bb,ab,ba} 52、高级语言编译程序常用的语法分析方法中,递归下降分析法属于( B )分析法。 A、自左至右 B、自顶向下 C、自底向上 D、自右向左 53、上下文无关文法可以用( C )来描述。
A、正则表达式 B、正规文法 C、扩展的BNF D、翻译模式 54、自上而下分析面临的四个问题中,不包括( D )。
A、需消除左递归 B、存在回朔 C、虚假匹配 D、寻找可归约串
55、从左线性文法构造有限自动机时,通常自动机状态个数比文法非终结符号数多( D ) A、4 B、2 C、0 D、1
56、正规表达式(ε|a|b)2表示的集合是( D )
A、{ε,ab,ba,aa,bb} B、{ab,ba,aa,bb}
西安交通大学网络教育学院
C、{a,b,ab,aa,ba,bb} D、{ε,a,b,aa,bb,ab,ba} 57、词法分析器的输入是( A)。
A、 符号串
B、源程序
C、语法单位 D、目标程序
58、两个有穷自动机等价是指它们的(C)。
A、状态数相等 C、所识别的语言相等
B、有向弧数相等 D、状态数和有向弧数相等
59、若状态k含有项目“A→α· ”,且仅当输入符号a∈FOLLOW(A)时,才用规则“A →α”归约的语法分析方法是(D)。
A、 LALR分析法
B、LR(0)分析法
C、LR(1)分析法 D、SLR(1)分析法
60、若a为终结符,则A→α · aβ为(B)项目。
A、 归约
B、移进
C、接受
D、待约
61、在使用高级语言编程时,首先可通过编译程序发现源程序的全部和部分(A)错误。
A、 语法
B、语义
C、语用
D、运行
62、所谓在程序中某个给定点是活跃的,是指如果在程序中,( A )。
A、该点以后被引用 B、该点以后被计算 C、该点正在被计算 D、该点一直被计算 63、LR语法分析栈中存放的状态是识别( B )的DFA状态。 A、前缀 B、可归前缀 C、项目 D、句柄 64、算符优先分析法每次都是对( B )进行归约:
A、句柄 B、最左素短语 C、素短语 D、简单短语 65、有文法G=({S},{a},{S→SaS,S→ε},S),该文法是( B )。 A、LL(1)文法 B、二义性文法 C、算符优先文法 D、SLR(1)文法 66、文法开始符号的所有( B )作为属性计算前的初始值。
A、综合属性 B、继承属性 C、继承属性和综合属性 D、都不是 67、对应于产生式A→XY继承属性Y.y的属性计算,可能正确的语义规则是( C )。 A、A.a:=f(X.x,Y.y) B、Y.y:=f(A.a,Y.y) C、Y.y:=f(X.x) D、A.a:=f(Y.y) 68、布尔表达式计算时可以采用某种优化措施,比如A and B用if-then-else可解释为( B )。 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; 69、合并表达式中常量运算的目的是( D )。 A、使表达式中的常量尽可能少
西安交通大学网络教育学院
B、是表达式尽可能简短
C、将可在编译时刻计算的常量运算在编译时刻计算出来,然后用所计算出来的值替换表达式中出现的所有这种常量运算,使得生成的代码指令尽可能少 D、以上都是
70、语法分析器接收以( C )为单位的输入,并产生有关信息供以后各阶段使用。 A、表达式 B、产生式 C、单词 D、语句; 71、LR语法分析栈中存放的状态是识别( B )的DFA状态。 A、前缀 B、可归前缀 C、项目 D、句柄; 72、中间代码生成所依据的是(C)。
A、语法规则
B、词法规则
C、语义规则
D、等价变换规则
73、一个(C)指明了在分析过程中的某时刻所能看到产生式多大一部分。
A、活前缀
B、前缀 C、项目
D、项目集
74、在LR(0)的ACTION子表中,如果某一行中存在标记“rj”的栏,则(A)。
A、该行必定填满rj C、其他行也有rj
B、该行未填满rj
D、goto子表中也有rj
75、对应于产生式A→XY继承属性Y.y的属性计算,可能正确的语义规则是( C )。 A、A.a:=f(X.x,Y.y) B、Y.y:=f(A.a,Y.y) C、Y.y:=f(X.x) D、A.a:=f(Y.y); 76、就文法的描述能力来说,有(C)。
A、SLR(1)⊂LR(0) B、LR(1)⊂LR(0)
C、SLR(1)⊂LR(1) D、无二义文法⊂LR(1)
77、乔姆斯基(Chomsky)把文法分为四种类型,即0型、1型、2型、3型。其中3型文法是(B)
A、 非限制文法
B、正则文法
C、上下文有关文法 D、上下文无关文法
78、一个句型中的(A)称为该句型的句柄。
A、 最左直接短语
B、最右直接短语
C、终结符
D、非终结符
79、在自底向上的语法分析方法中,分析的关键是(D)
A、 寻找句柄
B、寻找句型
C、消除递归
D、选择候选式
80、若项目集Ik含有A→α·,则在状态k时,仅当面临的输入符号a∈FOLLOW(A)时,才采取“A→α·”动作的一定是(D)。
A、LALR文法
B、LR(0)文法 C、LR(1)文法 D、SLR(1)文法
81、在LR分析法中,分析栈中存放的状态是识别规范句型(C)的DFA状态。
西安交通大学网络教育学院
A、 句柄
B、前缀
C、活前缀
D、LR(0)项目
82、为了便于优化处理,三地址代码可以表示成( D )。 A、三元式 B、四元式 C、后缀式 D、间接三元式 83、使用三元式是为了( B )。
A、便于代码优化处理 B、避免把临时变量填入符号表 C、节省存储代码的空间 D、提高访问代码的速度 84、表达式-a+b*(-c+d)的逆波兰式是( D )。
A、ab+-cd+-* B、a-b+c-d+* C、a-b+c-d+* D、a-bc-d+*+ 85、若a为终结符,则A→α·aβ为(B)项目 A、归约
B、移进
C、接受
D、待约
86、评价一个代码生成器最重要的指标是( A )。
A、代码的正确性 B、代码的高效性 C、代码的简洁性 D、代码的维护性 87、以绝对机器代码为输出,所有地址均已定位,这种代码的优点是( A )。
A、可立即执行 B、可进一步优化 C、目标代码简短 D、目标代码执行效率高
88、一个上下文无关文法G包括四个组成部分,它们是一组非终结符号,一组终结符号,一个开始符号,以及一组(B)
A、 句子
B、产生式
C、单词
D、句型
89、词法分析器用于识别(C)
A、 句子
B、产生式
C、单词
D、句型
90、编译程序是一种(B)
A、 汇编程序
B、翻译程序
C、解释程序
D、目标程序
91、按逻辑上划分,编译程序第三步工作是(A)
A、 语义分析
B、词法分析
C、语法分析
D、代码生成
92、在语法分析处理中,FIRST集合、FOLLOW集合均是(B)
A、 非终结符集
B、终结符集
C、字母表
D、状态集
93、如果文法G是无二义的,则它的任何句子α(A)。
A、最左推导和最右推导对应的语法树必定相同 B、最左推导和最右推导对应的语法树可能不同 C、最左推导和最右推导必定相同
D、可能存在两个不同的最左推导,但它们对应的语法树相同
西安交通大学网络教育学院
94、表达式-a+b*(-c+d)的逆波兰式是( D )。
A、ab+-cd+-* B、a-b+c-d+* C、a-b+c-d+* D、a-bc-d+*+ 95、在整个编译期间,对符号表的操作大致都有( B )。
A、查询给定名字 B、填入新名字 C、访问给定名字的信息 D、更新给定名字的信息 E、删除无用项 96、在编译过程中,符号表的主要作用是( B )。
A、帮助错误处理 B、辅助语法错误的检查 C、辅助语义的正确性检查 D、辅助代码生成 E、辅助对目标程序的优化
97、教材介绍了三种符号表的构造和处理方法,其中( B )中常把符号表组织成二叉树形式。 A、线性组织 B、排序组织和二分法 C、杂凑(散列)组织 D、非线性组织 98、编译过程中,语法分析器的任务就是(B)
A、分析单词是怎样构成的
B、分析单词串是如何构成语句和说明的 D、分析程序的结构
C、分析语句和说明是如何构成程序的
99、若一个文法是递归的,则它所产生的语言的句子(A)。
A、 是无穷多个
B、是有穷多个
C、是可枚举的
D、个数是常量
100、识别上下文无关语言的自动机是(C)
A、 下推自动机
B、NFA
C、DFA
D、图灵机
101、编译原理各阶段工作都涉及(B)
A、 词法分析
B、表格管理
C、语法分析
D、语义分析
102、正则表达式R1和R2等价是指(C)
A、R1和R2都是定义在一个字母表上的正则表达式 B、R1和R2中使用的运算符相同 C、R1和R2代表同一正则集 D、 R1和R2代表不同正则集
103、编译程序使用( B )区别标识符的作用域。
A、说明标识符的过程或函数名 B、说明标识符的过程或函数的静态层次 C、说明标识符的过程或函数的动态层次 D、标识符的行号
104、表达式作为实在参数可以传递给被调用的过程,替换过程体中的( B )。 A、局部变量 B、形式参数 C、全局变量 D、实在参数 105、两个不同过程的活动,其生存期是( B )。
西安交通大学网络教育学院
A、重叠的,不嵌套的 B、不重叠的,嵌套的 C、重叠的,嵌套的 D、不重叠的,不嵌套的
106、设G为算符优先文法,G的任意终结符对a、b有以下关系成立(C)。
A、若f(a)>g(b),则a>b C、a~b都不一定成立
107、有限状态自动机能识别(C)。
A、上下文无关文法 C、正规文法
B、上下文有关文法 D、短语文法
B、若f(a) 108、已知文法G[S]:S→A1, A→A1|S0|0。与G 等价的正规式是(C) A、 0(0|1)* B、1*|0*1 C、0(1|10)*1 D、1(10|01)*0 109、与(a|b)*(a|b)等价的正规式是(C)。 A、 a*| b* B、(ab)*(a|b) C、(a|b)(a|b)* D、(a|b)* 110、(D)文法不是LL(1)的。 A、 递归 B、右递归 C、2型 D、含有公共左因子的 111、给定文法A→bA|cc,则符号串①cc ②bcbc ③bcbcc ④bccbcc ⑤bbbcc中,是该文法句子的是(D) A、 ① B、③④⑤ C、②④ D、①⑤ 112、LR(1)文法都是(C) A、无二义性且无左递归 B、可能有二义性但无左递归 D、可以既有二义性又有左递归 C、无二义性但可能是左递归 113、文法E→E+E|E*E|i的句子i*i+i*i有(C)棵不同的语法树。 A、 1 B、3 C、5 D、7 114、文法 S→aaS|abc 定义的语言是(C)。 A、 {a2kbc|k>0} B、{akbc|k>0} C、{a2k-1bc|k>0} D、{akakbc|k>0} 115、将编译程序分成若干个“遍”是为了(B)。 A、提高程序的执行效率 B、使程序的结构更加清晰 C、利用有限的机器内存并提高机器的执行效率 D、利用有限的机器内存但降低了机器的执行效率 116、构造编译程序应掌握(D)。 A、源程序 B、目标语言 C、编译方法 D、以上三项都是 西安交通大学网络教育学院 117、变量应当(C)。 A、持有左值 B、持有右值 C、既持有左值又持有右值 D、既不持有左值也不持有右值 118、下列关于标识符和名字叙述中,正确的是(C)。 A、标识符有一定的含义 C、名字有确切的属性 119、(D)不可能是目标代码。 A、汇编指令代码 C、绝对指令代码 B、名字是一个没有意义的字符序列 D、A~C都不正确 B、可重定位指令代码 D、中间代码 120、若B为非终结符,则 A→.B 为(D)。 A、移进项目 B、归约项目 C、接受项目 D、待约项目 121、在运行空间的划分中有一个单独的区域叫堆,用来存放( C )。 A、目标代码 B、静态数据 C、动态数据 D、过程参数 122、Fortran语言的编译程序采用( A )分配策略。 A、静态 B、最佳 C、堆式动态 D、栈式动态 123、使用(A)可以定义一个程序的意义。 A、语义规则 C、产生规则 B、词法规则 D、词法规则 124、词法分析器的输入是(B)。 A、单词符号串 C、语法单位 B、源程序 D、目标程序 125、程序所需的数据空间在程序运行前可确定,称为(C)管理技术。 A、动态存储 B、栈式存储 C、静态存储 D、堆式存储 126、堆式动态分配申请和释放存储空间遵守(D)原则。 A、先请先放 B、先请后放 C、后请先放 D、任意 127、静态分配允许程序出现(C)。 A、递归过程 B、可变体积的数据项目 128、在编译方法中,动态存储分配的含义是(A)。 A、在运行阶段对源程序中的数组、变量、参数等进行分配 B、在编译阶段对源程序中的数组、变量、参数进行分配 C、在编译阶段对源程序中的数组、变量、参数等进行分配,在运行时这些数组、变量、参数的地址可 C、静态变量 D、待定性质的名字 西安交通大学网络教育学院 根据需要改变 D、以上都不正确 129、中间代码生成时所遵循的是(C)。 A、语法规则 C、语义规则 130、编译程序是对(D)。 A、汇编程序的翻译 C、机器语言的执行 B、高级语言程序的解释执行 D、高级语言的翻译 B、词法规则 D、等价变换规则 131、语法分析应遵循(C)。 A、语义规则 C、构词规则 B、语法规则 D、等价变换规则 132、程序基本块是指( D )。 A、一个子程序 B、一个仅有一个入口和一个出口的语句 C、一个没有嵌套的程序段 D、一组顺序执行的程序段,仅有一个入口和一个出口 133、在运行空间的划分中有一个单独的区域叫堆,用来存放( C )。 A、目标代码 B、静态数据 C、动态数据 D、过程参数 134、Fortran语言的编译程序采用( A )分配策略。 A、静态 B、最佳 C、堆式动态 D、栈式动态 135、文法G:S→xSx|y所识别的语言是(C)。 A、xyx D、x*yx* B、(xyx)* C、xnyxn(n≥0) 136、文法G描述的语言L(G)是指(A)。 + A、L(G)={α|S⇒α , α∈VT*} * B、L(G)={α|S⇒α, α∈VT*} + D、L(G)={α|S⇒α, α∈(VT∪VN*)} * C、L(G)={α|S⇒α,α∈(VT∪VN*)} 137、四元式之间的联系是通过(B)实现的。 A、指示器 B、临时变量 C、符号表 D、程序变量 138、后缀式ab+cd+/可用表达式(B)来表示。 a.a+b/c+d b.(a+b)/(c+d) c.a+b/(c+d) d.a+b+c/d 139、表达式(┓A∨B)∧(C∨D)的逆波兰表示为(B)。 A、┓AB∨∧CD∨ C、AB∨┓CD∨∧ B、A┓B∨CD∨∧ D、A┓B∨∧CD∨ 西安交通大学网络教育学院 + + 140、中间代码的树型表示A A、A+B+C+D B + C D 所对应的表达式为(D)。 C、(A+B)+C+D D、(A+B)+(C+D) B、A+(B+C)+D 141、四元式表示法的优点为(C)。 A、不便于优化处理,但便于表的更动 C、便于优化处理,也便于表的更动 142、终结符具有(D)属性。 A、传递 B、继承 C、抽象 D、综合 B、不便于优化处理,但节省存储空间 D、便于表的更动,也节省存储空间 143、编译程序使用(B)区别标识符的作用域。 A、说明标识符的过程或函数名 B、说明标识符的过程或函数的静态层次 C、说明标识符的过程或函数的动态层次 D、标识符的行号 144、在目标代码生成阶段,符号表用于(D)。 A、目标代码生成 145、过程信息表不包含(B)。 A、过程入口地址 B、过程的静态层次 C、过程名 D、过程参数信息 B、语义检查 C、语法检查 D、地址分配 二、多项选择题 1、编译程序各阶段的工作都涉及到 BC 。 a.语法分析 b.表格管理 c.出错处理 d.语义分析 e.词法分析 2、编译程序工作时,通常有 ABCE 阶段。 a.词法分析 b.语法分析 c.中间代码生成 d.语义检查 e.目标代码生成 3、下面哪些说法是错误的 ACE 。 a. 有向图是一个状态转换图 b. 状态转换图是一个有向图 c.有向图是一个DFA d.DFA可以用状态转换图表示 4、对无二义性文法来说,一棵语法树往往代表了 ACE 。 a. 多种推导过程 b. 多种最左推导过程 c.一种最左推导过程 d.仅一种推导过程 e.一种最左推导过程 5、如果文法G存在一个句子,满足下列条件 BCD 之一时,则称该文法是二义文法。 a. 该句子的最左推导与最右推导相同 b. 该句子有两个不同的最左推导 c. 该句子有两棵不同的最右推导 d. 该句子有两棵不同的语法树 e.该句子的语法树只有一个 6、在词法分析中,能识别出 ACE 。 a. 基本字 b. 四元式 c. 运算符 d. 逆波兰式 e. 常数 西安交通大学网络教育学院 7、令∑={a,b},则∑上所有以b开头,后跟若干个ab的字的全体对应的正规式为 ABD 。 + a. b(ab)* b. b(ab) c.(ba)*b + d. (ba)b e. b(a|b) 8、一个LR分析器包括 AD。 a.一个总控程序 b.一个项目集 c.一个活前缀 d.一张分析表 e.一个分析栈 9、LR分析器核心部分是一张分析表,该表包括 CE 等子表。 a.LL(1)分析 b.优先关系 c.GOTO d.LR e.ACTION 10、每一项ACTION[S,a]所规定的动作包括 ACDE 。 a.移进 b.比较 c.接受 d.归约 e.报错 11、对LR分析表的构造,有可能存在 CE 动作冲突。 a.移进 b.归约 c.移进/归约 d.移进/移进 e.归约/归约 12、自上而下的语法分析方法有 ACDE 。 a.算符优先分析法 b.LL(1)分析法 c.SLR(1)分析法 d.LR(0)分析法 e.LALR(1)分析法 13、对LR分析器来说,存在 ABCE 等分析表的构造方法。 a.LALR b.LR(0) c.SLR(1) d.SLR(0) e.LR(1) 14、在下面的 BCD 语法制导翻译中,采用拉链-回填技术。 a.赋值语句 b.goto语句 c.条件语句 d.循环语句 15、下列 BC 中间代码形式有益于优化处理。 a.三元式 b.四元式 c.间接三元式 d.逆波兰表示法 e.树形表示法 16、在编译程序中安排中间代码生成的目的是 BD 。 a.便于进行存储空间的组织 b.利于目标代码的优化 c.利于编译程序的移植 d.利于目标代码的移植 e.利于提高目标代码的质量 17、符号表的每一项均包含 AC 。 a. 名字栏 b. 类型栏 c. 信息栏 d. 值栏 e. a~d均包含 18、对编译程序所用到的符号表,涉及的操作有 ABC 。 a. 填写或更新信息栏内容 b. 填入新名 c.给定名字,访问它的有关信息 d. 杂凑技术 e.线性表和排序二叉树 19、源程序中的错误一般有 ABCE 。 a. 词法错误 b. 语法错误 c. 语义错误 d. 编译错误 e. 违反环境限制的错误 三、判断题(正确填“T”,错误填“F”) 1、在编译过程中,既可以将几个不同的阶段合为一遍,也可以把一个阶段的工作分为若干遍。( T ) 2、编译程序生成的目标程序都是可执行的程序。( F ) 3、一棵语法树表示了一个句型所有的不同推导过程,包括最右推导和最左推导。 ( T ) 4、编译前端主要由与源语言和目标机相关的那些部分组成。( F ) 5、优化的任务在于对前端编译所产生的中间代码进行加工和变换,以其能产生运行结果更为准确的目标代码。( F ) 6、变量既持有左值又持有右值,而常数和带有算符的表达式一般认为只持有右值。( T ) 7、文法G: S->bA A->aA|a 定义的语言是所有以b开头的后跟至少一个a的字符串的集合。( T ) 西安交通大学网络教育学院 8、可能有两个不同的文法G和G′,期中一个是二义的而另一个是无二义的,但是却有L(G)=L(G′)。( T ) 9、NFA M的非确定性表现在它有多个终态。 10、设有文法G: S->S*S | S+S | (S) | a 该文法是二义的。( T ) 11、正则文法一定不是二义的。( F ) 12、上下文无关文法可以产生语言L={ anbnci | i>=1,n>=1 }。( T ) 13、不存在任何正规文法能产生语言L={anbn | n>=1}。( T ) 14、对于每一个左线性文法G1,都存在一个右线性文法G2,使得L(G1)=L(G2)。( T ) 15、正规文法产生的语言都可以用上下文无关文法来描述。( T ) 16、上下文无关文法比正规文法有更强的描述能力。( T ) 17、有穷自动机接受的语言是正则语言。 ( T ) 18、LL(k)文法都不是二义性的。( T ) 19、存在一种算法,能判定任何上下文无关文法是否是LL(1)的。 ( T ) 20、一个二义性文法可以是SLR文法或LALR文法。( F ) 21、令Σ={a, b},则Σ上所有以b为首的字符构成的正规集的正规式为b*(a|b)*。 22、对任何一个NFA M,都存在一个DFA M',使得L(M')=L(M)。 ( T ) ( F ) ( F ) 23、对一个右线性文法G,必存在一个左线性文法G',使得L(G)=L(G'),反之亦然。( T ) 24、对任意一个右线性文法G,都存在一个NFA M,满足L(G)=L(M)。( T ) 25、对任意一个右线性文法G,都存在一个DFA M,满足L(G)=L(M)。.( T ) 26、对任何正则表达式r,都存在一个NFA M,满足L(M)=L(r)。( T ) 27、对任何正则表达式r,都存在一个DFA M,满足L(M)=L(r)。( T ) 28、算符优先分析法不是一种规范规约法。 ( T ) 29、存在有左递归规则的文法是LL(1)的。 ( F ) 30、LL(1)文法不能用LR(1)分析器来分析。( F ) 31、若r1和r2是Σ上的正规式,则r1|r2也是。 ( T ) 32、设M是一个NFA,并且L(M)={x, y, z},则M的状态数至少为4个。 33、一个文法是含有左递归的,如果存在非终结符P,使得P*P。( F ) 34、提取公共左因子的副产品是引进了大量的非终结符和ε产生式。 ( T ) ( F ) 35、LR分析器在自左至右扫描输入串时就能发现其中的任何错误,并能准确地指出出错地点。( T ) 36、在归约过程的任一时刻,一个上下文无关文法的任何句型的直接短语一般都不是唯一的。( T ) 西安交通大学网络教育学院 37、只含有综合属性的属性文法是S-属性文法。( T ) 38、非终结符只有综合属性,由词法分析器提供。( T ) 39、任何算符优先文法的句型中不会有两个相邻的非终结符号。 ( T ) 40、算符优先文法中任何两个相邻的终结符号之间至少满足三种关系(<·,·>,=·)之一。 ( F ) 41、任何LL(1)文法都是无二义性的。 ( T ) 42、每一个SLR(1)文法也都是LR(1)文法。 ( T ) 43、存在一种算法,能判定任何上下文无关文法是否是LL(1)的。 ( T ) 44、任何一个LL(1)文法都是一个LR(1)文法,反之亦然。 ( F ) 45、 LR(1)分析中括号中的1是指,在选用产生式A→α进行分析,看当前读入符号是否在FIRST(α)中。 ( T ) 46、若某一个句型中出现了某一产生式的右部,则此右部不一定是该句型的句柄。( F ) 47、在编译过程中,既可以将几个不同的阶段合为一遍,也可以把一个阶段的工作分为若干遍。( T ) 48、S—属性文法一定是L—属性文法。( T ) 49、中间代码是独立于机器的,复杂性介于源语言和机器语言之间,便于进行与机器无关调换代码优化工作。( T ) 50、只含有继承属性的属性文法称为-L属性文法。( F ) 51、“回填”技术用于对过程中的说明语句进行处理时把计算出的有关符号的属性填入符号表。 ( F ) 52、如果E是一个常量或变量,则E的逆波兰式是E自身。( T ) 53、在不含嵌套过程的词法作用域中,若一个过程中有对名字a的非局部引用,则a必须在任何过程(或函数)外被说明。( T ) 54、在允许嵌套的词法作用域的语言中,过程不能作为参数,原因时不能建立其运行环境的存取链。( F ) 55、强度削弱是指把程序中执行时间较长的运算替换为执行时间较短的运算。( T ) 56、把循环中的乘法运算用递归加法运算来替换就是一种强度削弱。( T ) 57、窥孔优化方法是通过考察一小段目标指令,并把这些指令替换为更短和更快的一段指令,从而提高目标代码的质量。( T ) 58、编译程序生成的目标程序都是可执行的程序。( F ) 59、一棵语法树表示了一个句型所有的不同推导过程,包括最右推导和最左推导。 ( T ) 60、可能有两个不同的文法G和G′,期中一个是二义的而另一个是无二义的,但是却有L(G)=L(G′)。( T ) 61、NFA M的非确定性表现在它有多个终态。 ( F ) 62、有穷自动机接受的语言是正则语言。 ( T ) 63、LL(k)文法都不是二义性的。( T ) 64、在自下而上的语法分析中,语法树与分析树一定相同。 ( F ) 西安交通大学网络教育学院 65、二义文法不是上下文无关文法。 66、语法分析时必须先消除文法中的左递归。 67、规范归约和规范推导是互逆的两个过程。 ( F ) ( F ) ( F ) ( F ) ( F ) 68、一个文法所有句型的集合形成该文法所能接受的语言。 69、一个有限状态自动机中,有且仅有一个唯一终态。 70、存在一种算法,能判定任何上下文无关文法是否是LL(1)的。 ( T ) 71、一个二义性文法可以是SLR文法或LALR文法。 ( F ) 72、LL(1)文法不能用LR(1)分析器来分析。 ( F ) 73、非终结符只有综合属性,由词法分析器提供。 ( T ) 74、S—属性文法一定是L—属性文法。 ( T ) 75、通过建立一个变量地址描述数组AVALUE,来动态记录变量在运行过程中值的变化。( F ) 76、在程序设计语言中,一般来说,布尔表达式仅仅用于条件、循环等控制流语句中的条件表达式计算。( F ) 77、中间代码是独立于机器的,复杂性介于源语言和机器语言之间,便于进行与机器无关调换代码优化工作。( F ) 78、设r和s分别是正规式,则有L(r|s)=L(r)|L(s)。 79、自动机M和M′的状态数不同,则二者必不等价。 ( F ) ( F ) ( T ) 80、确定的自动机以及不确定的自动机都能正确地识别正规集。 81、对任意一个右线性文法G,都存在一个NFA M,满足L(G)=L(M)。 ( T ) 82、在程序设计语言中,一般来说,布尔表达式仅仅用于条件、循环等控制流语句中的条件表达式计算。( F ) 83、对于允许递归调用的程序语言,程序运行时的存储分配策略不能采用静态的存储分配策略。( T ) 84、若一个程序语言的任何变量的存储空间大小和相互位置都能在编译时确定,则可采用静态分配策略。( T ) 85、编译程序在优化时可能要用到源程序中的注释。( F ) 86、复写传播的目的使对某些变量的赋值变为无用。( T ) 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- jqkq.cn 版权所有 赣ICP备2024042794号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务