编译原理试题库

合集下载

编译原理题库

编译原理题库

编译原理题库
1. 什么是编译原理?
编译原理是研究将高级程序语言翻译成为机器语言的原理和方法的学科。

2. 编译器的主要功能是什么?
编译器的主要功能包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等。

3. 什么是词法分析?
词法分析是将输入的字符流转化为标记流的过程。

4. 什么是语法分析?
语法分析是将词法分析得到的标记流转化为语法树的过程。

5. 什么是语义分析?
语义分析是对语法树进行解析,检查程序中是否存在语义错误或不符合语言规范的地方。

6. 什么是中间代码生成?
中间代码生成是将语义分析得到的语法树转化为中间表示形式,以便进行后续的代码优化和目标代码生成。

7. 什么是代码优化?
代码优化是对中间代码进行优化,以提高程序的执行效率和空间利用率。

8. 什么是目标代码生成?
目标代码生成是将优化后的中间代码转化为机器语言的过程。

9. 什么是语法制导翻译?
语法制导翻译是一种以语法规则为基础,通过对语法树的遍历和语义规则的应用来进行翻译的方法。

10. 什么是LL(1)文法?
LL(1)文法是一种上下文无关文法,它具有左递归和左因子的特点,并且在进行预测分析时每个非终结符的每个可能产生式都有唯一的选择。

编译原理试题及答案

编译原理试题及答案

编译原理试题及答案一、选择题1. 编译器的主要功能是什么?A. 程序设计B. 程序翻译C. 程序调试D. 数据处理答案:B2. 下列哪一项不是编译器的前端处理过程?A. 词法分析B. 语法分析C. 语义分析D. 代码生成答案:D3. 在编译原理中,词法分析器的主要作用是什么?A. 识别程序中的关键字和标识符B. 将源代码转换为中间代码C. 检查程序的语法结构D. 确定程序的运行环境答案:A4. 语法分析通常采用哪种方法?A. 自顶向下分析B. 自底向上分析C. 正则表达式匹配D. 直接解释执行答案:B5. 语义分析的主要任务是什么?A. 检查程序的语法结构B. 检查程序的类型安全C. 识别程序中的变量和常量D. 将源代码转换为机器代码答案:B二、简答题1. 简述编译器的工作原理。

答案:编译器的工作原理主要包括以下几个步骤:词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成。

词法分析器将源代码分解成一系列的词素;语法分析器根据语法规则检查词素序列是否合法;语义分析器检查程序的语义正确性;中间代码生成器将源代码转换为中间代码;代码优化器对中间代码进行优化;最后,目标代码生成器将优化后的中间代码转换为目标机器代码。

2. 什么是词法分析器,它在编译过程中的作用是什么?答案:词法分析器是编译器前端的一个组成部分,负责将源代码分解成一个个的词素(tokens),如关键字、标识符、常量、运算符等。

它在编译过程中的作用是为语法分析器提供输入,是编译过程的基础。

三、论述题1. 论述编译器中的代码优化技术及其重要性。

答案:代码优化是编译过程中的一个重要环节,它旨在提高程序的执行效率,减少资源消耗。

常见的代码优化技术包括:常量折叠、死代码消除、公共子表达式消除、循环不变代码外提、数组边界检查消除等。

代码优化的重要性在于,它可以显著提高程序的运行速度和性能,同时降低程序对内存和处理器资源的需求。

四、计算题1. 给定一个简单的四则运算表达式,请写出其对应的逆波兰表达式。

《编译原理》考试题

《编译原理》考试题

《编译原理》考试题一、选择题:(每题2分,共20分)1.文法G所描述的语言是的集合。

A)文法G的字汇表V中所有符号组成的符号串B)文法G的字汇表V的闭包V*中的所有符号串C)由文法的识别符号推出的所有符号串D)由文法的识别符号推出的所有终结符号串2.设有文法G[S]=({b},{S,B},S,{S→b|bB,B→bS}),试问该文法所描述的语言是。

A)L(G[S])={b i|i≥0} B)L(G[S])={b2i|i≥0}C)L(G[S])={b2i+1|i≥0} D)L(G[S])={b2i+1|i≥1}3.一个句型中的最左称为该句型的句柄。

A)短语B)简单短语C)素短语D)终结符号4. 正则文法能产生下面的语言:L={a n b n|n≥1}。

A)存在一个B)存在多个C)不存在D)无法判断5.编译程序中的语法分析器接受以为单位的输入,并产生有关信息供以后各阶段使用。

A)表达式B)产生式C)单词D)语句6.编译方法中,自顶向下的语法分析方法有。

A)简单优先分析方法B)算符优先分析方法C)SLR方法D)LL(1)分析方法7.简单优先分析法每次都是对进行归约。

A)最左短语B)简单短语C)句柄D)最左素短语8.LR语法分析栈中存放的状态是识别的DFA状态。

A)前缀B)可归前缀C)项目D)句柄9.表达式-(a+b)/(c-d)-(a+b*c)的逆波兰表示是(@代表单目运算-)。

A)ab+cd-/@bc*a+- B)ab+/cd@bc*a+--C)ab+@cd-/abc*+- D)ab+cd-/abc*+@-10.乔姆斯基(Chomsky)把文法分成四种类型,即0型、1型、2型和3型。

其中,3型文法是。

A)上下文无关文法B)上下文有关文法C)正则文法D)短语文法二、填空题:(每空1分,共20分)1.假设G是一个文法,S是文法的开始符号,如果S *x,则称x是。

2.已知文法G[E]:E→E+T|T,T→T*F|F,F→(E)|i;该文法的开始符号是,终结符号集合V T是,非终结符号集合V N 是,句型T+T*F+i的短语有T+T*F+i,第一个T,T*F和。

编译原理考试题

编译原理考试题

编译原理考试题一、选择题。

1. 编译原理的主要任务是()。

A.将高级语言程序翻译成机器语言程序。

B.将机器语言程序翻译成高级语言程序。

C.将源程序翻译成目标程序。

D.将目标程序翻译成源程序。

2. 以下哪个不是编译器的主要组成部分()。

A.词法分析器。

B.语法分析器。

C.语义分析器。

D.目标代码生成器。

3. 语法分析的主要任务是()。

A.将源程序分解成单词。

B.将单词序列转换成语法分析树。

C.将语法分析树转换成目标代码。

D.将源程序转换成目标程序。

4. 以下哪个不是语义分析的主要任务()。

A.类型检查。

B.中间代码生成。

C.错误处理。

D.优化。

5. 目标代码生成的主要任务是()。

A.将中间代码转换成目标代码。

B.将源程序转换成目标程序。

C.将目标程序转换成源程序。

D.将目标代码转换成中间代码。

二、填空题。

1. 词法分析的输出是()。

2. 语法分析的输出是()。

3. 语义分析的输出是()。

4. 目标代码生成的输入是()。

5. 目标代码生成的输出是()。

三、简答题。

1. 请简要说明编译过程中词法分析的作用和实现方法。

2. 请简要说明编译过程中语法分析的作用和常用的语法分析方法。

3. 请简要说明编译过程中语义分析的作用和常见的语义分析任务。

4. 请简要说明编译过程中目标代码生成的作用和常用的目标代码生成方法。

5. 请简要说明编译过程中优化的作用和常见的优化方法。

四、分析题。

1. 请分析词法分析器的设计和实现方法,并给出一个具体的例子。

2. 请分析语法分析器的设计和实现方法,并给出一个具体的例子。

3. 请分析语义分析器的设计和实现方法,并给出一个具体的例子。

4. 请分析目标代码生成器的设计和实现方法,并给出一个具体的例子。

5. 请分析编译器优化的方法和实现过程,并给出一个具体的例子。

五、综合题。

1. 请设计一个简单的编译器,包括词法分析器、语法分析器、语义分析器和目标代码生成器,并给出相应的实现代码。

2. 请分析该编译器的设计思路和实现方法,并说明其优缺点。

编译原理考试试卷

编译原理考试试卷

编译原理考试试卷一、选择题(每题2分,共20分)1. 编译器的主要功能是将源代码转换成目标代码,以下哪个不是编译器的基本组成部分?A. 词法分析器B. 语法分析器C. 代码优化器D. 运行时环境2. 词法分析器通常不负责以下哪项任务?A. 识别关键字B. 识别标识符C. 进行语义分析D. 去除空白字符3. 语法分析中,递归下降分析是一种:A. 确定性分析方法B. 非确定性分析方法C. 基于语法制导的分析方法D. 基于语法树的分析方法4. LR分析器是用于处理:A. 上下文无关文法B. 上下文有关文法C. 正则文法D. 链式文法5. 语义分析的目的是:A. 检查源代码的语法是否正确B. 检查源代码的语义是否正确C. 将源代码转换为目标代码D. 优化源代码6. 代码生成阶段,编译器将抽象语法树转换成:A. 目标代码B. 源代码C. 汇编代码D. 机器代码7. 编译优化中,常量折叠是一种:A. 局部优化B. 全局优化C. 过程间优化D. 模块内优化8. 编译器的前端主要负责:A. 源代码的输入B. 目标代码的生成C. 源代码的解析和翻译D. 运行时错误检测9. 编译器的后端主要负责:A. 词法分析B. 语法分析C. 代码优化D. 目标代码的生成和链接10. 以下哪个是编译原理中常用的数据结构?A. 栈B. 队列C. 链表D. 所有选项都是二、简答题(每题10分,共30分)1. 简述编译原理中词法分析器的作用及其实现方式。

2. 描述语法分析中自顶向下分析和自底向上分析的区别。

3. 解释编译优化的重要性,并给出一个优化的例子。

三、计算题(每题25分,共50分)1. 给定一个简单的算术表达式 "3 + 4 * 2 - 1",请说明如何使用递归下降分析器来解析这个表达式,并给出相应的语法树。

2. 假设你有一个简单的编译器后端,需要将四元式 "(a, b, +, c)" 转换成目标代码。

编译原理考试题库

编译原理考试题库

一、判断(共计50分,每题2.5分)1、静态存储分配策略是在程序运行期间为源程序中的量进行分配。

A. 正确B. 错误错误:【B】2、含有优化部分的编译程序的执行效率高。

A. 正确B. 错误错误:【A】3、四元式之间的联系是通过符号表实现的。

A. 正确B. 错误错误:【B】4、包含公共左因子的文法也能直接用预测分析法来分析。

A. 正确B. 错误错误:【B】5、局部优化是在一个程序块内进行的优化。

A. 正确B. 错误错误:【B】6、数组元素的地址计算与数组的存储方式有关。

A. 正确B. 错误错误:【A】7、紧跟在条件转移语句后面的语句是基本块的入口语句。

A. 正确B. 错误错误:【A】8、LL(1)文法是无左递归、无二义性文法。

A. 正确B. 错误错误:【A】9、设有一个LR(0)项目集I={X→α.Bβ, A→α.},该项目集含有“归约-归约”冲突。

A. 正确B. 错误错误:【B】10、使用语法制导翻译法的编译程序能够同时进行语法分析和语义分析。

A. 正确B. 错误错误:【A】11、包含左递归的文法也能直接用LL(1)分析法来分析。

A. 正确B. 错误错误:【B】12、产生式是用于定义词法成分的一种书写规则。

A. 正确B. 错误错误:【B】13、如果i •>j , 则j <•i 。

A. 正确B. 错误错误:【B】14、编译程序与解释程序的区别在于编译程序对源程序进行了翻译,而解释程序则没有。

A. 正确B. 错误错误:【B】15、在形式语言中,最右推导的逆过程也称为规范归约。

A. 正确B. 错误错误:【A】16、设有一个LR(0)项目集Ii={X→α.Bβ,A→α.},该项目集含有“移进-归约冲突”。

A. 正确B. 错误错误:【A】17、动态存储分配是指在编译阶段对源程序中的量进行分配,以使目标代码在运行时加快行速度。

A. 正确B. 错误错误:【B】18、设有一个LR(0)项目集Ii={X→α.,A→α.},该项目集含有“归约-归约冲突”。

完整版编译原理试题

完整版编译原理试题

编译原理考试题及答案汇总一、选择1.将编译程序分成若干个“遍”是为了 _B__。

A . 提高程序的执行效率 B. 使程序的结构更加清晰C. 利用有限的机器内存并提高机器的执行效率D. 利用有限的机器内存但降低了机器的执行效率 2.正规式 MI 和 M2 等价是指 __C__。

A . MI 和 M2 的状态数相等 B.Ml 和 M2 的有向弧条数相等。

C .M1 和 M2 所识别的语言集相等 D. Ml 和 M2 状态数和有向弧条数相等3.中间代码生成时所依据的是 _C_。

A.语法规则 B •词法规则 C •语义规则 D •等价变换规则 4.后缀式ab+cd+/可用表达式__B_来表示。

A. a+b/c+d B . (a+b)/(c+d) C a+b/(c+d) D a+b+c/d6. 一个编译程序中,不仅包含词法分析, _A _______ ,中间代码生成,代码优化,生成等五个部分。

A .( ) 语法分析B .( ) 文法分析C .( ) 语言分析D .( ) 解释分析 7. 词法分析器用于识别 __C___。

A .( ) 字符串B .( ) 语句C .( ) 单词D .( ) 标识符 8. 语法分析器则可以发现源程序中的 ___D__。

A .( ) 语义错误B .( ) 语法和语义错误C .( ) 错误并校正D .( ) 语法错误 9. 下面关于解释程序的描述正确的是 __B___。

(1) 解释程序的特点是处理程序时不产生目标代码 (2) 解释程序适用于 COBOL 和FORTRAN 语言 (3) 解释程序是为打开编译程序技术的僵局而开发的A .( ) (1)(2)B .( ) (1)C .( ) (1)(2)(3)D .( ) (2)(3) 10. 解释程序处理语言时 , 大多数采用的是 __B___方法。

A .( ) 源程序命令被逐个直接解释执行B .( ) 先将源程序转化为中间代码 , 再解释执行C .( ) 先将源程序解释转化为目标程序 , 再执行D .( ) 以上方法都可以11. 编译过程中 , 语法分析器的任务就是 (1) 分析单词是怎样构成的 (2) (3) 分析语句和说明是如何构成程序的 A .( ) (2)(3) B .( ) (2)(3)(4)C .( ) (1)(2)(3) D .( ) (1)(2)(3)(4) 12. 编译程序是一种 ___C__。

《编译原理》考试试题及答案(汇总)

《编译原理》考试试题及答案(汇总)

《编译原理》考试试题及答案(汇总)一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分)1.编译程序是对高级语言程序的解释执行。

(× )2.一个有限状态自动机中,有且仅有一个唯一的终态.(×)3.一个算符优先文法可能不存在算符优先函数与之对应。

(√ )4.语法分析时必须先消除文法中的左递归。

(×)5.LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。

(√)6.逆波兰表示法表示表达式时无须使用括号。

(√ )7.静态数组的存储空间可以在编译时确定。

(×)8.进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。

(×) 9.两个正规集相等的必要条件是他们对应的正规式等价。

(× )10.一个语义子程序描述了一个文法所对应的翻译工作。

(×)二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分) 1.词法分析器的输出结果是_____。

A.( ) 单词的种别编码B.( )单词在符号表中的位置C.( )单词的种别编码和自身值D.()单词自身值2.正规式M 1 和M 2 等价是指_____。

A.() M1和M2的状态数相等B.( ) M1和M2的有向边条数相等C.( )M1和M2所识别的语言集相等D.( ) M1和M2状态数和有向边条数相等3.文法G:S→xSx|y所识别的语言是_____.A.()xyx B.()(xyx)*C.( ) xnyxn(n≥0) D.()x*yx* 4.如果文法G是无二义的,则它的任何句子α_____。

A.( )最左推导和最右推导对应的语法树必定相同B.() 最左推导和最右推导对应的语法树可能不同C.()最左推导和最右推导必定相同D.()可能存在两个不同的最左推导,但它们对应的语法树相同5.构造编译程序应掌握______.A.( )源程序B.()目标语言C.()编译方法D.( )以上三项都是6.四元式之间的联系是通过_____实现的。

编译原理考试题及答案

编译原理考试题及答案

编译原理考试题及答案一、选择题(每题5分,共20分)1. 编译器的主要功能是什么?A. 代码优化B. 代码翻译C. 代码调试D. 代码运行答案:B2. 下列哪个选项不属于编译器的前端部分?A. 词法分析B. 语法分析C. 语义分析D. 代码生成答案:D3. 在编译原理中,文法的产生式通常表示为:A. A -> αB. A -> βC. A -> γD. A -> δ答案:A4. 下列哪个算法用于构建语法分析树?A. LL(1)分析B. LR(1)分析C. SLR(1)分析D. LALR(1)分析答案:A二、填空题(每空5分,共20分)1. 编译器的前端通常包括词法分析、语法分析和________。

答案:语义分析2. 编译器的后端主要负责________和目标代码生成。

答案:代码优化3. 编译器中的词法分析器通常使用________算法来识别单词。

答案:有限自动机4. 语法分析中,________分析是一种自顶向下的分析方法。

答案:递归下降三、简答题(每题10分,共30分)1. 简述编译器的作用。

答案:编译器的主要作用是将高级语言编写的源代码转换成计算机能够理解的低级语言或机器代码,以便执行。

2. 解释一下什么是语法制导翻译。

答案:语法制导翻译是一种翻译技术,它利用源语言的语法信息来指导翻译过程,使得翻译过程能够更好地理解源代码的语义。

3. 什么是词法分析器?答案:词法分析器是编译器前端的一部分,它的任务是将源代码文本分解成一系列的标记(tokens),这些标记是源代码的最小有意义的单位。

四、计算题(每题10分,共30分)1. 给定一个简单的文法G(E):E → E + T | TT → T * F | FF → (E) | id请计算文法的非终结符号E的FIRST集和FOLLOW集。

答案:E的FIRST集为{(, id},FOLLOW集为{), +, $}。

2. 假设编译器在进行语法分析时,遇到一个语法错误的代码片段,请简述编译器如何处理这种情况。

编译原理考试试卷

编译原理考试试卷

编译原理考试试卷一、选择题(每题2分,共20分)1. 下列哪个选项不是编译器的主要功能?A. 词法分析B. 语法分析C. 语义分析D. 运行程序2. 编译过程中,词法分析器的作用是:A. 将源代码转换为中间代码B. 将源代码分解为一系列的标记C. 检查源代码的语法正确性D. 优化生成的目标代码3. 在编译原理中,自底向上的语法分析方法通常指的是:A. LL(1)分析B. LR(1)分析C. SLR(1)分析D. LALR(1)分析4. 下列哪个选项不是编译器的优化技术?A. 常量传播B. 死码消除C. 循环不变代码外提D. 动态链接5. 在编译器的语义分析阶段,主要进行的工作是:A. 检查标识符的拼写是否正确B. 检查语法结构是否符合语言规则C. 检查类型是否一致,进行类型转换D. 生成目标代码6. 编译器中,用于存储变量信息的数据结构通常是:A. 符号表B. 语法树C. 控制流图D. 抽象语法树7. 编译器在处理数组时,通常采用的地址计算方法是:A. 偏移量计算B. 直接地址计算C. 间接地址计算D. 基址加偏移量计算8. 在编译原理中,哪种类型的文法不是上下文无关文法?A. 正则文法B. 上下文有关文法C. 上下文无关文法D. 无限制文法9. 编译器在生成目标代码时,通常需要考虑的是:A. 源代码的可读性B. 目标代码的可执行性C. 源代码的语法正确性D. 目标代码的可移植性10. 在编译原理中,下列哪个选项不是中间代码的形式?A. 三地址代码B. 四元组C. 抽象语法树D. 二进制代码二、填空题(每空1分,共10分)1. 编译器在进行语法分析时,通常使用________文法来描述程序设计语言的语法规则。

2. 编译器的________阶段负责将源代码中的标识符替换为内存地址。

3. 在编译原理中,________文法可以用来描述正则表达式。

4. 编译器在进行语义分析时,需要检查变量的________和________。

编译原理题库

编译原理题库

1.【单选题】文法:G:S→xSx | y所识别的语言是()A.B.C.D.答案:D难易程度:中2.【单选题】给定文法A→bA|ca,为该文法句子的是()A.bbaB.cabC.bcaD.cba答案:C难易程度:中3.【单选题】设有文法G[S]:S→S1|S0|Sa|Sc|a|b|c,下列符号串中是该文法的句子有()A.ab0B.a0b01C.a0b0aD.bc10答案:D难易程度:中4.【单选题】文法G产生的()的全体是该文法描述的语言。

A.句型B.终结符集C.非终结符集D.句子答案:D难易程度:中5.【单选题】若文法G定义的语言是无限集,则文法必然是()A.递归的B.上下文无关的C.二义性的D.无二义性的答案:A难易程度:中6.【单选题】乔姆斯基(Chomsky)把文法分为四种类型,即0型、1型、2型、3型。

其中3型文法是()A.非限制文法B.正规文法C.上下文有关文法D.上下文无关文法答案:B难易程度:中7.【单选题】一个上下文无关文法G包括四个组成部分,它们是一组非终结符号,一组终结符号,一个开始符号,以及一组()A.句子B.产生式C.单词D.句型答案:B难易程度:中8.【单选题】若一个文法是递归的,则它所产生的语言的句子()A.是无穷多个B.是有穷多个C.是可枚举的D.个数是常量答案:A难易程度:中9.【单选题】给定文法A→bA|cc,则符号串①cc ②bcbc ③bcbcc ④bccbcc ⑤bbbcc中,是该文法句子的是()A.①B.③④⑤C.②④D.①⑤答案:D难易程度:中10.【单选题】文法E→E+E|E*E|i的句子i*i+i*i有( )棵不同的语法树。

()A. 1B. 3C. 5D. 7答案:C难易程度:中11.【单选题】文法S→aaS|abc 定义的语言是()A.B.C.D.答案:C难易程度:中12.【单选题】文法G:S→xSx| xS|y所识别的语言是()A.B.C.D.答案:A难易程度:中13.【单选题】由文法的开始符号出发经过若干步(包括0步)推导产生的文法符号序列称为()A.语言B.句型C.句子D.句柄答案:B难易程度:中14.【单选题】下列符号串不可以由符号集S={a,b}上的正闭包运算产生的是()A.εB. aC. aaD. ab答案:A难易程度:中15.【单选题】文法G:S →xxS | y 所识别的语言是()A.B.C.D.答案:D难易程度:中16.【单选题】文法G:S →xS | y 所识别的语言是()A.B.C.D.答案:D难易程度:中17、下面哪些选项不是编译程序的组成部分。

编译原理试题及答案

编译原理试题及答案

编译原理试题及答案一、选择题1. 编译器的主要功能是什么?A. 将高级语言代码翻译成机器语言代码B. 进行程序调试C. 进行代码优化D. 管理程序运行时的内存分配答案:A2. 词法分析器的主要任务是什么?A. 将源代码分解成多个语句B. 将源代码分解成多个词素C. 检查源代码的语法正确性D. 将词素转换为相应的语法单位答案:B3. 下列哪个是自顶向下的语法分析方法?A. LL(1)分析法B. LR(1)分析法C. LALR(1)分析法D. GLR分析法答案:A4. 语义分析的主要任务是什么?A. 检查程序的语法正确性B. 检查程序的类型正确性C. 将源代码转换为目标代码D. 进行程序的优化答案:B5. 代码生成阶段的主要任务是什么?A. 将语法树转换为目标代码B. 进行程序的优化C. 检查程序的类型正确性D. 将源代码分解成多个词素答案:A二、简答题1. 简述编译过程的主要阶段。

答案:编译过程主要分为四个阶段:词法分析、语法分析、语义分析和代码生成。

词法分析将源代码分解成词素,语法分析检查源代码的语法结构,语义分析检查源代码的语义正确性,代码生成将源代码转换为目标代码。

2. 什么是中间代码?它在编译过程中起到什么作用?答案:中间代码是一种介于源代码和目标代码之间的代码形式,它通常具有更接近于机器语言的特性,但仍然保持一定的抽象级别。

中间代码在编译过程中起到桥梁的作用,它使得代码优化和目标代码生成更加方便和高效。

三、论述题1. 论述编译器优化的几种常见方法。

答案:编译器优化主要包括以下几种方法:常量折叠、死代码消除、公共子表达式消除、循环优化、代码内联、寄存器分配等。

这些优化方法可以提高程序的执行效率,减少资源消耗,提高程序的运行速度。

结束语:本试题涵盖了编译原理的基本知识点,包括编译器的功能、编译过程的主要阶段、中间代码的作用以及编译器优化的方法。

希望考生能够通过本试题加深对编译原理的理解和掌握。

编译原理试题及答案

编译原理试题及答案

编译原理试题及答案1. 选择题(每题4分,共40分)1) 当编译器在词法分析阶段遇到无法识别的字符时,应该采取的动作是:A. 直接忽略该字符并继续进行词法分析B. 输出错误信息并终止词法分析过程C. 将该字符标记为非法字符并继续词法分析D. 转交给语法分析器进行处理答案:B2) 下列关于语法分析器的描述中,错误的是:A. 语法分析器使用文法规则将输入的记号流转化为推导树B. 语法分析器可以通过自上而下或自下而上的方式进行解析C. LL(1)文法是一种常用于自上而下语法分析的文法形式D. 语法分析器的输入是词法分析器输出的记号流答案:A3) 以下关于语法制导翻译的说法,正确的是:A. 语法制导翻译是在语义分析阶段完成的B. 语法制导翻译通过产生式的属性传递进行信息的传递和计算C. 语法制导翻译只能用于自上而下的语法分析D. 语法制导翻译是在语法分析阶段完成的答案:B4) 在SLR分析算法中,项目集簇的构造过程中需要进行的操作是:A. 闭包操作和移进操作B. 移进操作和规约操作C. 闭包操作和规约操作D. 闭包操作、移进操作和规约操作答案:D5) 下列关于中间代码生成的叙述中,错误的是:A. 中间代码是一种类似于汇编代码的表示形式B. 中间代码可以直接被目标代码生成器所使用C. 中间代码的生成可以采用三地址码的形式D. 中间代码的生成在语法分析和语义分析之后进行答案:B2. 简答题(每题10分,共30分)1) 请简要描述编译器的主要工作流程。

答案:编译器的主要工作流程包括词法分析、语法分析、语义分析、中间代码生成、优化和目标代码生成等阶段。

在词法分析阶段,编译器将输入的源代码转化为一个个记号流。

接下来,在语法分析阶段,编译器使用文法规则对记号流进行分析,并生成语法树或推导树。

在语义分析阶段,编译器对语法树进行语义检查,并进行类型推导和符号表管理等操作。

中间代码生成阶段将经过语义分析的源代码转化为一种中间表示形式,通常是三地址码。

编译原理-题库

编译原理-题库

编译原理-题库1、编译程序工作时,通常有()阶段。

A、词法分析B、语法分析C、中间代码生成D、语义检查E、目标代码生成答案: ABCE2、编译程序各阶段的工作都涉及到()。

A、语法分析B、表格管理C、出错处理D、语义分析E、词法分析答案: BC3、自下而上的语法分析中,应从()开始分析。

A、句型B、句子C、以单词为单位的程序D、文法的开始符E、句柄答案: BC4、对正规文法描述的语言,以下()有能力描述它。

A、 0型文法B、 1型文法C、上下文无关文法D、右线性文法E、左线性文法答案: ABCDE5、如果文法G存在一个句子,满足下列条件()之一时,则称该文法是二义文法。

A、该句子的最左推导与最右推导相同B、该句子有两个不同的最左推导C、该句子有两棵不同的最右推导D、该句子有两棵不同的语法树E、该句子的语法树只有一个答案: BCD6、在词法分析中,能识别出()。

A、基本字B、四元式C、运算符D、逆波兰式E、常数答案: ACE7、对LR分析器来说,存在()等分析表的构造方法。

A、 LALRB、 LR(0)C、 SLR(1)D、 SLR(0)E、 LR(1)答案: ABCE8、自上而下的语法分析方法有()。

A、算符优先分析法B、 LL(1)分析法C、 SLR(1)分析法D、 LR(0)分析法E、 LALR(1)分析法答案: ACDE9、对LR分析表的构造,有可能存在()动作冲突。

A、移进B、归约C、移进/归约D、移进/移进E、归约/归约答案: CE10、中间代码主要有()。

A、四元式B、二元式C、三元式D、后缀式E、间接三元式答案: ACDE11、有穷自动机接受的语言是正则语言。

答案:正确12、一个文法所有句型的集合形成该文法所能接受的语言。

答案:错误13、在自下而上的语法分析中,语法树与分析树一定相同。

答案:错误14、语法分析时必须先消除文法中的左递归。

答案:错误15、一个有限状态自动机中,有且仅有一个惟一终态。

编译原理试题集78677

编译原理试题集78677

编译原理试题集78677第一章引论一.填空题1. 对编译程序而言,输入数据是________________;输出数据是_____________。

2. 编译后端通常不依赖于源语言而仅仅依赖于___________________。

3. 如果不需改写编译程序中与机器无关的部分就可以把编译程序移植到另外一个目标机上,则称该编译程序是___________________。

4. 描述程序设计语言词法的有效工具是___________________________。

5. 编译过程的每一个阶段都能检测出错误,其中,绝大多数错误在_______________阶段检测出来的。

6. 编译过程的每一个阶段都能检测出错误,其中,绝大多数错误在_______阶段检测出来的。

7. 为了使编译后的Java程序从一个平台移到另外一个平台上执行,Java定义了一种称为Byt eCode的虚拟机代码。

只要实际使用的操作平台上实现了执行ByteCode的Java 解释器,这个操作平台就可以执行各种Java程序。

这就是所谓Java语言的________________。

8. 在一个程序设计环境中,______________起着中心作用。

连接程序、调试程序、程序分析等工具的工作直接依赖于它所产生的结果。

解答: 1. 2. 3. 4. 5. 6. 7. 8.二.判断题1. 在编译过程中,既可以将几个不同的阶段合为一遍,也可以把一个阶段的工作分为若干遍。

()2. 编译程序生成的目标程序都是可执行的程序。

()3. 编译前端主要由与源语言和目标机相关的那些部分组成。

()4. 优化的任务在于对前端编译所产生的中间代码进行加工和变换,以其能产生运行结果更为准确的目标代码。

()5. 支持程序设计人员进行程序计开发的工具,除了编译程序以外,还需要编辑程序、链接程序和调试程序等其他一些工具。

()6. 汇编器将高级语言程序翻译成汇编语言程序。

()7. 许多编译程序在识别出语法单位后并不真正构造语法树。

编译原理试题库

编译原理试题库

编译原理试题库* ? 一.名词解释: 1)前缀答:前缀——是指符号串任意首部。

2)可归前缀答:可归前缀——是指规范句型的一个前缀,这种前缀包含句柄且不含句柄之后的任何符号。

3)活前缀答:活前缀——规范句型的一个前缀,这种前缀不含句柄之后的任何符号。

或给定文法规范句型的可归前缀的任意首部。

4)简单短语答:简单短语——设G[Z]是给定文法,w=xuy ∈V +,为该文法的句型,如果满足下面两个条件:① Z xUy ;② U ?u ;则称句型xuy 中的子串u 是句型xuy 的简单短语。

5)扫描遍答:扫描遍——指编译程序对源程序或中间代码程序从头到尾扫描一次。

6)句柄答:句柄——给定句型中的最左简单短语就是句柄。

7)句型答:句型——设G 是一个给定的文法,S 是文法的开始符号,如果S x(其中x ∈V *),则称x 是文法的一个句型。

8)句子答:句子——设G 是一个给定的文法,S 是文法的开始符号,如果S x (其中x ∈V T *),则称x 是文法的一个句子。

9)非终结符答:非终结符—出现在文法产生式的左部且能派生出符号或符号串的那些符号称为非终结符号。

10)终结符答:终结符——出现在文法产生式的右部且不能派生出符号或符号串的那些符号称为终结符号。

11)属性文法答:一个属性文法形式的定义为一个三元组AG ,AG=(G ,V ,E )。

其中G 为一个上下文无关文法;V 为属性的有穷集;E 为一组语义规则。

12)语法制导翻译答:语法制导翻译——语法制导翻译就是在语法分析的过程中,当进行推导或归约时同步完成附加在所使用的产生式上的语义规则描述的动作,从而实现语义处理。

13)后缀式答:后缀式——一种把运算量(操作数)写在前面,把算符写在后面(后缀)的表示法。

14)短语答:短语——设G[Z]是给定文法,w=xuy ∈V +,为该文法的句型,如果满足下面两个条件:① Z xUy ;② U u ;则称句型xuy 中的子串u 是句型xuy 的短语。

编译原理考试题及答案

编译原理考试题及答案

编译原理考试题及答案一、选择题(每题2分,共10分)1. 在编译原理中,词法分析器的主要任务是什么?A. 将源代码转换为中间代码B. 识别源代码中的词法单元C. 进行语法分析D. 优化代码答案:B2. 下列哪个选项不是编译器的组成部分?A. 词法分析器B. 语法分析器C. 运行时环境D. 语义分析器答案:C3. 编译器的哪个阶段负责检查变量是否已经声明?A. 词法分析B. 语法分析C. 语义分析D. 代码生成答案:C4. 在编译原理中,哪些技术常用于错误恢复?A. 预测分析表和LR分析B. 递归下降分析和LR分析C. 预测分析表和递归下降分析D. 预测分析表和错误恢复算法答案:D5. 编译器中用于优化代码的阶段是哪一个?A. 词法分析B. 语法分析C. 语义分析D. 代码优化答案:D二、填空题(每题2分,共10分)1. 编译器的前端包括词法分析、语法分析和________。

答案:语义分析2. 在编译过程中,________分析器负责将源代码的逻辑结构转换为一种内部表示形式。

答案:语法3. 编译器的后端包括________、寄存器分配和代码生成。

答案:中间代码生成4. 编译器中的________分析用于检查程序中的类型错误。

答案:语义5. 编译器的________阶段负责将高级语言代码转换为目标机器代码。

答案:代码生成三、简答题(每题10分,共20分)1. 简述编译器的主要功能。

答案:编译器的主要功能包括将高级语言编写的源代码转换成目标机器可以执行的机器代码,同时进行错误检测、代码优化等。

它通常包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等阶段。

2. 描述编译过程中的语法分析阶段的主要任务。

答案:语法分析阶段的主要任务是检查源代码是否符合语言的语法规则,构建抽象语法树(AST),并进行语法制导的语义分析。

这一阶段使用诸如自顶向下的递归下降分析、自底向上的移进-规约分析等技术来识别语言结构,并为后续的语义分析和代码生成打下基础。

编译原理考试试题

编译原理考试试题

编译原理考试试题一、选择题(每题 2 分,共 20 分)1、编译程序是一种()。

A 系统软件B 应用软件C 实时系统D 分布式系统2、词法分析器的输出结果是()。

A 单词的种别编码和自身值B 单词在符号表中的位置C 单词的语法属性D 单词的语义信息3、正规式(ab|c)表示的语言是()。

A 以 ab 或 c 开头的字符串B 以 ab 或 c 结尾的字符串C 包含 ab 或 c 的字符串D 由 ab 或 c 组成的任意字符串4、设有文法 GS:S→aS|b,该文法描述的语言是()。

A {anb|n≥0}B {ambn|m,n≥0}C {an|n≥1}D {ambm|m,n≥0}5、在自底向上的语法分析中,分析的关键是()。

A 寻找句柄B 寻找句型C 消除左递归D 消除回溯6、代码优化的目的是()。

A 提高程序的运行速度B 节省存储空间C 提高目标代码的质量D 以上都是7、以下中间代码形式中,()更便于优化。

A 三元式B 四元式C 逆波兰式D 树形表示8、数据空间的分配策略中,()适用于过程调用次数较多的情况。

A 静态分配B 动态分配C 栈式分配D 堆式分配9、目标代码生成时,应考虑如何充分利用计算机的寄存器,这是()方面的问题。

A 指令选择B 寄存器分配C 指令调度D 以上都是10、下面关于解释程序和编译程序的论述中,正确的是()。

A 解释程序不生成目标代码,编译程序生成目标代码B 解释程序和编译程序都不生成目标代码C 解释程序生成目标代码,编译程序不生成目标代码D 解释程序和编译程序都生成目标代码二、填空题(每题 2 分,共 20 分)1、编译程序的工作过程一般可以划分为 5 个阶段,分别是、、、和。

2、词法分析的任务是从中识别出一个个。

3、确定的有穷自动机是一个元组,通常表示为。

4、语法分析最常用的两类方法是和。

5、常见的存储分配策略有、和。

6、局部优化的对象通常是。

7、基本块是指。

8、符号表的作用是。

编译原理试题

编译原理试题

编译原理试题一、选择题(共20题,每题2分,共40分)1.解释程序和编译程序的区别在于( )。

A.是否生成中间代码B.加工的对象不同C.使用的实现技术不同D.是否生成目标程序2.文法G:S→[S]|[]所产生的语言是( )。

A.[m]n (m,n>0)B.[m]n(m,n>1)C.[m]m(m>=1)D.[n]n(n>=0)3.如果一个文法G是无二义性文法,则对任一个句子x∈L(G),该句子( )。

A.可能存在两个不同的最右推导B.可能存在两个不同的最左推导C.最左推导和最右推导不同D.仅存在一个最左推导和一个最右推导4.一个语言的文法是( )。

A.有限的B.不唯一的C.唯一的5.乔姆斯基把文法分为四种类型,即0型,1型,2型,3型。

2型文法也称为( )。

A.上下文无关文法B.上下文有关文法C.正则文法D.短语文法6.( )正规文法能产生语言L={a n b n|n>=1}。

A.存在一个B.不存在C.可能存在,也可能不存在7.同正规表达式(a|b)*等价的正规表达式是( )。

A.(a|b)+B.(a*|b*)*C.(ab)*D.(a*|b*)+8.如果一个有穷自动机所能识别的字符串集合是无穷的,则它必( )。

A.含有多个状态B.含有多条有向边C.含有多个终止状态D.含有回路9.称有穷自动机A1和A2等价是指( )。

A.A1和A都是定义在一个字母表Σ上的有穷自动机B.A1和A2 状态数和有向边数相等C.A1和A2 状态数或有向边数相等D.A1和A2 所能识别的字符串集合相同10.设有文法G(S为开始符号)S→Ap|BqA→a|cAB→b|dBFIRST(Ap)= ( )。

A.a,cB.b,dC.p,qD.其他答案11.一个文法G,若( ),则称它是LL(1)文法。

A.G中不含左递归B.G无二义性C.G的LL(1)分析表不含多重定义D.G中产生式不含左公因子12.在递归子程序方法中,如果文法存在左递归,则会使分析过程产生( )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一填空题1.编译程序首先要识别出源程序中每个,然后再分析每个并翻译其意义。

单词,句子2.编译器常用的语法分析方法有和两种。

自底向上,自顶向下2.通常把编译过程分为分析与综合两大阶段。

词法、语法和语义分析是对源程序的分析,中间代码生成、代码优化与目标代码的生成则是对源程序的综合。

前端,后端4.程序设计语言的发展带来了日渐多变的运行时存储管理方案,主要分为两大类,即方案和分配方案。

静态存储分配,动态存储5.对编译程序而言,输入数据是,输出结果是。

源程序,目标程序6.文法G包括四个组成部分:一组终结符号,一组非终结符号,一组,以及一个开始符号。

产生式7.文法按产生式的形式分为四种类型,它们是:0型文法,又称短语文法;1型文法,又称上下文有关文法;2型文法,又称;3型文法,又称。

上下文无关文法,正规文法8.最右推导称为,由规范推导产生的句型称为规范句型。

规范推导9.设G是一个文法,S是它的开始符号,如果S=>*α,则称α是一个。

仅由终结符号组成的句型是一个。

句型,句子10 对于一个文法G而言,如果L(G)中存在某个句子对应两棵不同,那么该文法就称为是二义的。

语法树11.通常程序设计语言的单词符号分为五种:基本字、、常数、算符、界限符。

标识符12.在自底向上分析法中,LR分析法把“可归约串”定义为。

句柄13.编译中常用的中间代码形式有逆波兰式、三元式、和四元式等。

树代码14.对中间代码优化按涉及的范围分为,和全局优化。

局部优化,循环优化15.局部优化主要包括、利用公共子表达式和删除无用赋值等内容。

合并已知量16.为了构造不带回溯的递归下降分析程序,我们通常要消除和提取左递归,左公共因子17.计算机执行用高级语言编写的程序主要有两种途径:和。

解释执行,编译执行18.扫描器是词法分析,它接收输入的,对源程序进行词法分析并识别出一个个,供语法分析器使用。

源程序,单词符号19.自下而上分析法采用,,和等四种操作。

移进、规约、错误处理、接受20.一个LR分析器包括两部分:一个总控程序,和分析栈。

一张分析表21.后缀式abc-/所代表的表达式是。

a/(b-c)22.局部优化是在范围内进行的一种优化。

基本块23. 不同的编译程序关于数据空间的存储分配策略可能不同,但大部分编译中采用的方案有两种:静态存储分配方案和动态存储分配方案,而后者又分为和。

栈式动态存储分配,堆式动态存储分配24. 规范规约是。

最左规约25. 编译程序的工作过程一般划分为5个阶段:词法分析、、语义分析与中间代码生成,代码优化及目标代码生成。

另外还有和出错处理。

语法分析,表格管理26.表达式x+y*z/(a+b)的后缀式为。

xyz*ab+/+27.文法符号的属性有综合属性和。

继承属性28.假设二位数组按行存放,而且每个元素占用一个存储单元,则数组a[1..15,1..20]某个元素a[i,j]的地址计算公式为。

a+(i-1)*20+j-129.局部优化是局限于一个范围内的一种优化。

基本块二选择题1.语言是A.句子的集合B.产生式的集合C.符号串的集合D.句型的集合A2.编译程序前三个阶段完成的工作是A.词法分析、语法分析和代码优化B.代码生成、代码优化和词法分析C.词法分析、语法分析、语义分析和中间代码生成D.词法分析、语法分析和代码优化C3.一个句型中称为句柄的是该句型的最左A.非终结符号B.短语C.句子D.直接短语D4.下推自动机识别的语言是A.0型语言B.1型语言C.2型语言D.3型语言C5.扫描器所完成的任务是从字符串形式的源程序中识别出一个个具有独立含义的最小语法单位即A.字符B.单词C.句子D.句型B6.对应Chomsky四种文法的四种语言之间的关系是A.L0⊂L1⊂L2⊂L3B.L3⊂L2⊂L1⊂L0C.L3=L2⊂L1⊂L0D.L0⊂L1⊂L2=L3B7.词法分析的任务是A.识别单词B.分析句子的含义C.识别句子D.生成目标代码A8.常用的中间代码形式不含A.三元式B.四元式C.逆波兰式D.语法树D9.代码优化的目的是A.节省时间B.节省空间C.节省时间和空间D.把编译程序进行等价交换C10.代码生成阶段的主要任务是A.把高级语言翻译成汇编语言B.把高级语言翻译成机器语言C.把中间代码变换成依赖具体机器的目标代码D.把汇编语言翻译成机器语言C11. 一个上下文无关文法G包括四个组成部分:一组终结符,一组非终结符,一个(),以及一组()。

A.字符串B.产生式C.开始符号D.文法C, B12.程序的基本块是指()。

A.一个子程序B.一个仅有一个入口和一个出口的语句C.一个没有嵌套的程序段D.一组顺序执行的程序段,仅有一个入口和一个出口D13. 高级语言编译程序常用的语法分析方法中,递归下降分析法属于()分析方法。

A.自左向右B.自顶向下C.自底向上D.自右向左C14.在通常的语法分析方法中,()特别适用于表达式的分析。

A.算符优先分析法 B. LR分析法C.递归下降分析法 D. LL(1)分析法A15.经过编译所得到的目标程序是()。

A.四元式序列B.间接三元式序列C.二元式序列D.机器语言程序或汇编语言程序D16.一个文法所描述的语言是();描述一个语言的文法是()。

A.唯一的B.不唯一的C.可能唯一,也可能不唯一A, C17.词法分析器的输出结果是()。

A.单词的种别,编码B.单词在符号表的位置C.单词的种别编码和自身值D.单词自身值C18.正规式M1和M2等价是指()。

A.M1和M2的状态相等B.M1和M2的有向边条数相等C.M1和M2所识别的语言集相等D.M1和M2状态数和有向边条数相等C19.文法G:S→xSx|y所识别的语言是()。

A.xyxB.(xyx)*C.x n yx nD.x*yx*C20.如果文法G是二义的,则它的任何句子α()A.最左推导和最右推导对应的语法树必定相同B.最左推导和最右推导对应的语法树可能不同C.最左推导和最右推导必定相同D.可能存在两个不同的最左推导但是他们对应的语法树相同。

A21.构造编译程序应掌握()A.编译程序B.目标语言C.编译方法 D.以上三项都是D22.四元式之间的联系是通过()实现的。

A.指示器B.临时变量C.符号表D.程序变量B23.程序的基本块是指()A.一个子程序B.一个仅有一个入口和一个出口C.一个没有嵌套的程序段D.一组顺序执行的程序段,仅有一个入口和一个出口D24.优化可生成()的目标代码。

A.运行时间较短B.占用存储空间较小C.运行时间短但占用内存空间大D.运行时间短且占用存储空间小D25.下列()优化方法不是针对循环优化进行的。

A.强度削弱B.删除归纳变量C.删除多余运算D.代码外提C26.编译程序使用()区别标识符的作用域A.说明标识符的过程或者函数名B.说明标识符的过程或函数的静态层次C.说明标识符的过程或函数的动态层次D.标示符的行号B三名词解释1.词法分析词法分析的主要任务是从左向右扫描每行源程序的符号,按照词法规则从构成源程序的字符串中识别出一个个具有独立意义的最小语法单位,并转换成统一的内部表示(token),送给语法分析程序。

2.LL(1)文法若文法的任何两个产生式A →α | β都满足下面两个条件:(1)FIRST(α ) ⋂ FIRST(β ) = φ;(2)若β⇒* ε,那么FIRST(α ) ⋂FOLLOW( A ) = φ。

我们把满足这两个条件的文法叫做LL(1)文法,其中的第一个L代表从左向右扫描输入,第二个L表示产生最左推导,1代表在决定分析器的每步动作时向前看一个输入符号。

除了没有公共左因子外,LL(1)文法还有一些明显的性质,它不是二义的,也不含左递归。

3.语言和文法文法就是语言结构的定义和描述,是有穷非空的产生式集合。

文法G 定义为四元组的形式:G=(VN ,VT ,P ,S)其中:V N 是非空有穷集合,称为非终结符号集合;V T 是非空有穷集合,称为终结符号集合;P 是产生式的集合(非空);S 是开始符号(或识别符号)。

这里,V N ∩V T =∅,S ∈V N 。

V=V N ∪V T ,称为文法G 的字母表,它是出现文法产生式中的一切符号的集合。

文法G 所描述的语言用L(G)表示,它由文法G 所产生的全部句子组成,即L(G)={x| S ⇒*x ,其中S 为文法开始符号,且+∈TV x }简单的说,文法描述的语言是该文法一切句子的集合。

4.简述代码优化的目的和意义。

代码优化是尽量生成“好”的代码的编译阶段。

也就是要对程序代码进行一种等价变换,在保证变换前后代码执行结果相同的前提下,尽量使目标程序运行时所需要的时间短,同时所占用的存储空间少。

5.编译过程通常分为哪几个阶段?每个过程的主要功能?编译过程通常分为词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成六个主要阶段。

各个阶段的主要功能如下:词法分析阶段:读入源程序,对构成源程序的字符流进行扫描和分解,识别出一个个单词,并表示成计算机内部的形式。

语法分析阶段:在词法分析的基础上,将单词序列分解成各类语法短语,如“表达式”、“语句”、“程序”等,确定整个输入串是否构成语法上正确的程序。

语义分析阶段:审查源程序有无语义错误,为代码生成阶段收集类型信息。

中间代码生成阶段:将源程序翻译成一种复杂性介于源程序与目标程序之间的内部形式(中间代码)。

代码优化:对前阶段产生的中间代码进行等价变换,目的是使将来生成的目标代码更为高效。

目标代码生成:把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。

6. 简述代码优化的原则和目标原则:对中间代码进行等价变换,使代码变换后功能不变。

目标:变换后的代码运行速度更快,占用的存储空间更少。

7.试为表达式w+(a+b)*(c+d/(e-10)+8)写出相应的逆波兰表示。

wab+cde10-/+8+*+8. 写出表达式a+b*(c-d)/e的逆波兰式和三元序列。

逆波兰式: abcd-*e/+三元序列: op arg1 arg2(1) - c d(2) * b (1)(3) / (2) e(4) + a (3)四.判断题请在括号内,正确的划√,错误的划×)1. 编译程序是对高级语言程序的解释执行。

()×2. 一个有限状态自动机中,有且仅有一个唯一的终态()×3. 目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。

( )√4. 语法分析时必须先消除文法中的左递归()×自顶向下5. LR分析法在自左至右扫描输入串时就能发现错误,但不能准确的指出出错地点()√6. 逆波兰表示法表示表达式时无需使用括号。

()√7. 静态数组的存储空间可以在编译时确定。

相关文档
最新文档