编译原理智慧树知到课后章节答案2023年下哈尔滨工程大学_第1页
编译原理智慧树知到课后章节答案2023年下哈尔滨工程大学_第2页
编译原理智慧树知到课后章节答案2023年下哈尔滨工程大学_第3页
编译原理智慧树知到课后章节答案2023年下哈尔滨工程大学_第4页
编译原理智慧树知到课后章节答案2023年下哈尔滨工程大学_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

编译原理智慧树知到课后章节答案2023年下哈尔滨工程大学哈尔滨工程大学

第一章测试

编译器(Compiler)能捕捉的错误都是静态错误(Staticerrors)。

A:错B:对

答案:对

编译器只能识别动态(Dynamic)语义,但不能识别静态(Static)语义。

A:错B:对

答案:错

对源程序进行编译正确处理顺序为()

A:语义分析,语法分析、词法分析,代码生成B:语法分析、词法分析、语义分析、代码生成C:其他选项都不对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:动态语义分析

答案:静态语义分析

编译器中词法分析的输入和输出分别是()

A:字符串、记号串

B:语法树、注释树C:记号串、注释树D:记号串、语法树

答案:字符串、记号串

第二章测试

确定的自动机以及不确定的自动机都能正确地识别正规集。

A:错B:对

答案:对

正则文法、DFA和正则表达式均可以用于描述高级程序设计语言的词法。

A:对B:错

答案:对

在有穷自动机中,两个状态是等价的条件是(

)。

A:同为可接受状态或不可接受状态B:对于所有输入,两个状态迁移到等价状态里C:两个状态都不是无用状态

D:A和B

答案:A和B

扫描器所完成的任务是从字符串形式的源程序中识别出一个个具有独立含义的最小语法单位即()

A:句型B:字符

C:单词D:句子

答案:单词

设∑为{a,b},则a,ba,{

},Ø都是∑上的正规式。

A:对B:错

答案:对

以下()不是DFA的组成部分。

A:初始状态集合

B:有穷字母表C:终止状态集合D:有限状态集合

答案:初始状态集合

在有穷自动机中,有穷自动机的状态s和t不等价,则称这两个状态是可区别的。

A:错B:对

答案:对

“由大写字母组成的、以Z开头并且不以Z结尾的字符串”的正则表达式是()

A:Z[a-z]+[a-Y]B:Z[a-Z]*[A-Y]C:Z[a-Y]*D:

Z[a-z]*Z

答案:Z[a-Z]*[A-Y]

下面(

)是词法分析的理论基础。

A:正规文法B:有穷自动机C:下推自动机

D:正规式

答案:有穷自动机

第三章测试

高级语言编译程序常用的语法分析方法中,递归下降分析法属于(

)分析方法。

A:自左至右B:自右向左C:自底向上

D:自顶向下

答案:自顶向下

下面哪种分析方法是自顶向下分析(

)。

A:LL(1)B:LR(0)C:LR(1)D:SLR(1)

答案:LL(1)

推导是一个替换序列,每一步都是对()进行替换,形成一个从单独的结构名开始,结束于一串记号符号的过程。

A:非终结符B:记号

C:特殊符号D:终结符

答案:非终结符

语言中具有独立意义的最小语法单位是(

)。

A:程序B:词(记号)C:字符D:语句

答案:词(记号)

词法分析器交给语法分析器的文法符号一定是(),它一定只出现在产生式的(

)部。

A:终结符右B:非终结符

C:非终结符

右D:终结符左

答案:终结符右

在文法中可能引起二义性的原因有:(

)。

A:运算的结合性B:运算的优先级C:其他选项都有可能D:else的悬挂问题

答案:其他选项都有可能

正则文法产生的语言都可以用上下文无关文法来描述。

A:错B:对

答案:对

编译过程中,语法分析器的任务是____________。①分析单词是怎样构成的②分析单词串是如何构成语句和说明的③分析语句和说明是如何构成程序的④分析程序的结构

A:④B:②和③C:①②③④D:②③④

答案:②③④

LL(1)分析方法中第一个“L”、第二个“L”以及括号中的数字“1”分别代表的意义是:

A:输入符号从左至右处理;分析过程对应最左推导;移入一个符号。B:分析过程对应最左推导;输入符号从左至右处理;先行查看一个符号。C:其他选项都不对。D:输入符号从左至右处理;分析过程对应最左推导;先行查看一个符号。

答案:输入符号从左至右处理;分析过程对应最左推导;移入一个符号。

一个文法所描述的语言是(

);描述一个语言的文法是(

)。

A:可能唯一B:不唯一的

C:唯一的D:可能不唯一

答案:不唯一的

;唯一的

第四章测试

递归下降的基本方法是将非终结符A的文法规则看作是()的定义。

A:识别A的一个过程B:递归调用AC:预测A的一个算法D:搜索A的一个函数

答案:识别A的一个过程

每个文法都能改写为LL(1)文法。

A:对B:错

答案:错

一个LL(l)文法可能是无二义的,也可能是二义性的文法。

A:对B:错

答案:错

递归下降法允许任一非终结符是直接左递归的。

A:错B:对

答案:错

对下面文法中非终结符First集合描述正确的是(

)。E->(L)|a|εL->EL+|E

A:First(E)={

(

a

+

}B:First(L)={

(

a

+

}C:First(L)={

(

a

+

ε}D:First(E)={

(

a

+

ε}

答案:First(L)={

(

a

+

ε}

LL(1)预测分析表中,索引行的是(

),索引列的是(

),表示当非终结符遇到输入栈的终结符的时候,应该用什么规则来替换。

A:非终结符

终结符B:终结符非终结符C:终结符终结符

D:非终结符

非终结符

答案:非终结符

终结符

通过算法可以判定文法是否是二义性的。

A:错B:对

答案:错

文法经过修改都可以进行自顶向下分析。

A:错B:对

答案:错

如果产生式中没有ε-产生式,那么无需求解Follow集合。

A:错B:对

答案:对

判断文法是否是LL(1)文法时,第一个判定规则是,同一个产生式的多个产生式选项的First集合两两相交为空。

A:错B:对

答案:对

第五章测试

任何一个L属性文法(L-AttributedGrammar)都是S属性文法(S-AttributedGrammar)。

A:对B:错

答案:错

给定一个属性文法,通过对文法的适当修改,而无须改变文法的语言,所有的合成属性(Synthesizedattributes)都可以转换为继承属性(Inheritedattributes)。

A:对B:错

答案:错

编译器既能识别静态语义,又能识别动态语义。

A:错B:对

答案:错

编译器能够识别()的语义。

A:静态

B:其他选项都不对C:动态

D:动态和静态

答案:静态

编译器(Compiler)能捕捉的错误都是动态错误(Dynamicerrors)。

A:对B:错

答案:错

编译器只能识别静态(Static)语义,但不能识别动态(Dynamic)语义。

A:错B:对

答案:对

任何一个S属性文法都是L属性文法。

A:对B:错

答案:错

给定一个属性文法,通过对文法的适当修改,而无须改变文法的语言,所有的继承属性都可以转换为合成属性。

A:错B:对

答案:错

以下说法正确的是()。

A:语义规则中的属性有两种:综合属性与继承属性B:属性值在分析过程中可以进行计算,但不能传递

C:终结符只有继承属性,它由词法分析器提供D:非终结符可以有综合属性,但不能有继承属性

答案:语义规则中的属性有两种:综合属性与继承属性

文法符号的属性有两种,一种称(),另一种称为()。

A:抽象属性派生属性B:继承属性综合属性C:传递属性抽象属性D:抽象属性综合属性

答案:继承属性综合属性

第六章测试

对于数据空间的存贮分配,FORTRAN采用动态贮存分配策略。

A:对B:错

答案:错

下列对完全静态存储分配的含义描述错误的是(

)。

A:每个变量都有一个固定的存储地址B:没有指针和动态分配C:允许递归调用D:每个过程只有一个活动记录

答案:允许递归调用

过程信息表(过程活动记录)中至少应该包括有____。①过程名②过程的静态层次③过程的入口地址④过程首部在源程序中的行号⑤有关过程参数的信息

A:①③④B:①③⑤

C:①②③④⑤D:①②③

答案:①②③④⑤

动态存储分配时,可以采用的分配方法是(

)1)

以过程为单位的栈式动态存储分配2)

堆存储分配3)

最佳分配方法

A:1,2

B:1,2,3C:2D:1

答案:1,2,3

数组元素的地址计算与数组的存储方式有关。

A:对B:错

答案:对

编译程序使用_____区别标识符的作用域。

A:说明标识符的过程或函数的静态层次B:说明标识符的过程或函数名C:说明标识符的过程或函数的动态层次D:

标识符的行号

答案:说明标识符的过程或函数名

C语言,允许递归过程,还允许用户动态地申请和释放存储空间,应采用以下哪种存储分配策略()。

A:静态分配策略B:栈式分配策略C:都有D:堆式分配策略

答案:都有

活动记录中静态链的作用是()。

A:建立本过程和主调过程间的联系B:用以实现对非局部名字的访问C:用来指向静态数据区D:表明过程的嵌套层次

答案:用以实现对非局部名字的访问

过程的活动生存期是指从该过程体第一步操作到最后一步操作之间的操作序。两个过程的活动生存期可以重叠。

A:对B:错

答案:错

一个程序可用一个流图来表示。

A:对B:错C:无法判断

答案:对

第七章测试

以下各个编译器模块除了()外,都无需考虑目标机器的特性。

A:词法分析

B:语义分析C:语法分析D:代码生成

答案:代码生成

后缀表示的特点是()。

A:其他选项都是B:操作数的顺序与原来相同C:操作符的顺序就是计算发生的顺序D:后缀表示中无需括号

答案:其他选项都是

对代码生成阶段(CodeGeneration)描述正确的是(

)。

A:只需考虑源程序的特征即可B:只需考虑目标机的硬件细节C:与源程序和目标机的硬件细节无关D:不仅要考虑源程序的特征,而且要考虑目标机的硬件细节

答案:不仅要考虑源程序的特征,而且要考虑目标机的硬件细节

A:=8*(7*B-C)的后缀表示是(

)。

A:A87B*C-*:=

B:A8:=7B*C-*C:其他选项都不对D:7B*C-8*A:=

答案:7B*C-8*A:=

逆波兰法表示的表达式亦称前缀式。

A:对B:错

答案:错

目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。

A:错B:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论