最新编译原理复习题(经典)
编译原理期末复习题(含答案)
a. 句型
b. 句子
c. 以单词为单位的程序
d. 文法的开始符
e. 句柄
6、对正规文法描述的语言,以下 有能力描述它。
a.0 型文法
b.1 型文法 c.上下文无关文法 d.右线性文法 e.左线性文法
解答 1、e、a、c 2、a、c、e 3、b、c、d 4、a、c 5、b、c 6、a、b、c、d、e
三、填空题
1、选 c。
2、选 a。
3、选 c。
4、虽然 a 与 b 没有优先关系,但构造优先函数后,a 与 b 就一定存在优先关系了。所以,由 f(a)>g)(b)
或 f(a)<g(b)并不能判定原来的 a 与 b 之间是否存在优先关系:故选 c。
5、如果文法 G 无二义性,则最左推导是先生长右边的枝叶:对于 d,如果有两个不同的是了
6、自下而上分析法采用 、归约、错误处理、
等四种操作。
7、Chomsky 把文法分为
种类型,编译器构造中采用
和
文法,它们分别产
生
和
语言,并分别用
和
自动机识别所产生的语言。
解答 1、空集 终结符 右
2、最左
3、自上而上 自下而上
4、自上而上
5、语法 分析
6、移进 接受
7、4 2 型 3 型 上下文无关语言 正规语言 下推自动机 有限
a. 直接短语
b. 句柄
c. 最左素短语
d. 素短语
13、有文法 G:E→E*T|T
T→T+i|i 句子 1+2*8+6 按该文法 G 归约,其值为 。
a. 23 B. 42 c. 30 d. 17
14、规范归约指 。
a. 最左推导的逆过程
编译原理复习题(经典)
编译原理复习题一、是非题1.计算机高级语言翻译成低级语言只有解释一种方式。
(×)3.每个文法都能改写为 LL(1) 文法。
(×)4.算符优先关系表不一定存在对应的优先函数。
(√)5.LR分析方法是自顶向下语法分析方法。
(×)6.“ 用高级语言书写的源程序都必须通过编译,产生目标代码后才能投入运行”这种说法。
(× )7.一个句型的句柄一定是文法某产生式的右部。
(√)8.仅考虑一个基本块,不能确定一个赋值是否真是无用的。
(√ )9.在中间代码优化中循环上的优化主要有不变表达式外提和削减运算强度。
(× )10.对于数据空间的存贮分配,FORTRAN采用动态贮存分配策略。
(×)11.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。
(× ) 12.递归下降分析法是自顶向下分析方法。
(√ )13.产生式是用于定义词法成分的一种书写规则。
(×)14.在SLR(1)分析法的名称中,S的含义是简单的。
(√)15.综合属性是用于“ 自上而下” 传递信息。
(× )16.符号表中的信息栏中登记了每个名字的属性和特征等有关信息,如类型、种属、所占单元大小、地址等等。
(×)17.程序语言的语言处理程序是一种应用软件。
(×)18.解释程序适用于COBOL 和FORTRAN 语言。
(×)19.一个LL(l)文法一定是无二义的。
(√)20.正规文法产生的语言都可以用上下文无关文法来描述。
(√)21.一张转换图只包含有限个状态,其中有一个被认为是初态,最多只有一个终态。
(×)22.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。
(√)22.逆波兰法表示的表达式亦称后缀式。
(√ )23.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是二义的。
(√ )24.数组元素的地址计算与数组的存储方式有关。
编译原理试题及答案
编译原理试题及答案一、选择题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. 给定一个简单的四则运算表达式,请写出其对应的逆波兰表达式。
最新编译原理复习题及答案
编译原理复习题及答案一、选择题1.一个正规语言只能对应(B)A 一个正规文法B 一个最小有限状态自动机2.文法G[A]:A→εA→aB B→Ab B→a是(A)A 正规文法B 二型文法3.下面说法正确的是(A)A 一个SLR(1)文法一定也是LALR(1)文法B 一个LR(1)文法一定也是LALR(1)文法4.一个上下文无关文法消除了左递归,提取了左公共因子后是满足LL(1)文法的(A)A 必要条件B 充分必要条件5.下面说法正确的是(B)A 一个正规式只能对应一个确定的有限状态自动机B 一个正规语言可能对应多个正规文法6.算符优先分析与规范归约相比的优点是(A)A 归约速度快B 对文法限制少7.一个LR(1)文法合并同心集后若不是LALR(1)文法(B)A 则可能存在移进/归约冲突B 则可能存在归约/归约冲突C 则可能存在移进/归约冲突和归约/归约冲突8.下面说法正确的是(A)A Lex是一个词法分析器的生成器B Yacc是一个语法分析器9.下面说法正确的是(A)A 一个正规文法也一定是二型文法B 一个二型文法也一定能有一个等价的正规文法10.编译原理是对(C)。
A、机器语言的执行B、汇编语言的翻译C、高级语言的翻译D、高级语言程序的解释执行11.用高级语言编写的程序经编译后产生的程序叫(B)A.源程序 B.目标程序C.连接程序D.解释程序12.(C)不是编译程序的组成部分。
A.词法分析程序B.代码生成程序C.设备管理程序D.语法分析程序13.通常一个编译程序中,不仅包含词法分析,语法分析,语义分析,中间代码生成,代码优化,目标代码生成等六个部分,还应包括(C)。
A.模拟执行器B.解释器 C.表格处理和出错处理D.符号执行器14.源程序是句子的集合,(B)可以较好地反映句子的结构。
A. 线性表B. 树C. 完全图D. 堆栈15.词法分析器的输出结果是(D)。
A、单词自身值B、单词在符号表中的位置C、单词的种别编码D、单词的种别编码和自身值16.词法分析器不能(D)A. 识别出数值常量B. 过滤源程序中的注释C. 扫描源程序并识别记号D. 发现括号不匹配17.文法:G:S→xSx | y所识别的语言是(D)。
编译原理复习题
编译原理复习题1. 定义和分类- 什么是编译原理?- 编译器的主要功能是什么?- 列举编译器的几种类型,并简要描述它们的特点。
2. 词法分析- 词法分析在编译过程中的作用是什么?- 描述词法分析器的工作原理。
- 举例说明如何使用正则表达式进行词法分析。
3. 语法分析- 语法分析的目的是什么?- 解释上下文无关文法和上下文有关文法的区别。
- 描述递归下降解析器的工作原理。
4. 语义分析- 语义分析的任务是什么?- 描述如何使用属性文法进行语义分析。
- 解释类型检查的重要性及其在语义分析中的应用。
5. 中间代码生成- 中间代码的作用是什么?- 列举常见的中间代码形式,并解释它们的优缺点。
- 描述如何从源代码生成三地址代码。
6. 代码优化- 代码优化的目标是什么?- 解释局部优化和全局优化的区别。
- 描述几种常见的代码优化技术。
7. 目标代码生成- 目标代码生成的重要性是什么?- 描述如何将中间代码转换成目标机器代码。
- 解释寄存器分配和指令调度的概念。
8. 符号表管理- 符号表在编译过程中的作用是什么?- 描述符号表的组织结构。
- 解释如何在编译过程中维护和更新符号表。
9. 错误处理- 编译过程中常见的错误类型有哪些?- 描述错误检测和报告的策略。
- 解释如何设计一个有效的错误恢复机制。
10. 编译原理的应用- 编译原理在现代软件开发中的重要性是什么?- 列举编译原理在不同领域的应用实例。
- 讨论编译原理在人工智能和机器学习领域的潜在应用。
结束语编译原理不仅仅是计算机科学中的一个理论领域,它在实际的软件开发和系统设计中扮演着至关重要的角色。
通过深入理解编译原理,我们可以更有效地编写和优化软件,提高程序的性能和可靠性。
希望这些复习题目能够帮助你更好地掌握编译原理的基础知识和应用技巧。
编译原理复习题
编译原理复习题一、选择题1、编译原理是对(C)。
A、机器语言的执行B、汇编语言的翻译C、高级语言的翻译D、高级语言程序的解释执行2、(A)是一种典型的解释型语言。
A.BASIC B.C C.FORTRAN D.PASCAL3、把汇编语言程序翻译成机器可执行的目标程序的工作是由(B)完成的。
A. 编译器B. 汇编器C. 解释器D. 预处理器4、用高级语言编写的程序经编译后产生的程序叫(B)A.源程序 B.目标程序C.连接程序D.解释程序5、(C)不是编译程序的组成部分。
A.词法分析程序B.代码生成程序C.设备管理程序D.语法分析程序6、通常一个编译程序中,不仅包含词法分析,语法分析,语义分析,中间代码生成,代码优化,目标代码生成等六个部分,还应包括(C)。
A.模拟执行器B.解释器 C.表格处理和出错处理D.符号执行器7、编译程序绝大多数时间花在(D)上。
A.出错处理B.词法分析C.目标代码生成D.表格管理8、源程序是句子的集合,(B)可以较好地反映句子的结构。
A. 线性表B. 树C. 完全图D. 堆栈9、词法分析器的输出结果是(D)。
A、单词自身值B、单词在符号表中的位置C、单词的种别编码D、单词的种别编码和自身值10、词法分析器不能(D)A. 识别出数值常量B. 过滤源程序中的注释C. 扫描源程序并识别记号D. 发现括号不匹配11、文法:G:S→xSx | y所识别的语言是(D)。
A、xyxB、(xyx)*C、x*yx*D、x n yx n (n≥0)12、如果文法G是无二义的,则它的任何句子α(A)A.最左推导和最右推导对应的语法树必定相同B.最左推导和最右推导对应的语法树可能不同C.最左推导和最右推导必定相同D.可能存在两个不同的最左推导,但它们对应的语法树相同13、正则文法(A)二义性的。
A. 可以是B. 一定不是C. 一定是14、(B)这样一些语言,它们能被确定的有穷自动机识别,但不能用正则表达式表示。
编译原理复习题有答案
编译原理复习题有答案编译原理复习题及答案一、选择题1. 编译器的主要功能是什么?A. 代码格式化B. 代码优化C. 将源代码转换为机器码D. 错误检测和修复答案:C2. 词法分析阶段的主要任务是什么?A. 语法分析B. 语义分析C. 识别源程序中的词法单元D. 代码生成答案:C3. 下列哪个不是编译原理中的常见数据结构?A. 栈B. 队列C. 哈希表D. 链表答案:D4. 语法分析通常采用哪种方法?A. 递归下降分析B. 动态规划C. 贪心算法D. 深度优先搜索答案:A5. 代码优化的目的是什么?A. 增加程序长度B. 减少程序运行时间C. 提高程序的可读性D. 增加程序的复杂性答案:B二、简答题1. 简述编译过程的主要阶段。
答案:编译过程主要分为四个阶段:词法分析、语法分析、语义分析和代码生成。
词法分析负责将源代码分解成词法单元;语法分析构建语法树,检查源代码的语法结构;语义分析检查程序的语义正确性;代码生成将源代码转换成目标代码或机器码。
2. 什么是自底向上的语法分析方法?答案:自底向上的语法分析方法是一种从叶子节点开始,逐步向上构建语法树的方法。
它通常使用移进-归约分析技术,通过将输入符号与栈顶符号进行匹配,不断地将它们归约成非终结符,直到整个输入被归约为起始符号。
3. 请解释什么是中间代码,并说明其作用。
答案:中间代码是一种介于源代码和目标代码之间的代码形式,通常用于代码优化和目标代码生成。
它具有高级语言的可读性,同时又能表达程序的控制流和数据流信息。
中间代码使得编译器可以在不同的阶段对程序进行优化,提高程序的执行效率。
三、论述题1. 论述编译原理中的错误处理机制。
答案:编译原理中的错误处理机制主要包括错误检测、错误恢复和错误报告。
错误检测是指在编译过程中识别出源代码中的语法或语义错误;错误恢复是指在检测到错误后,编译器采取的措施以继续编译过程,避免因单个错误而中断整个编译;错误报告则是向程序员提供错误信息,帮助其定位和修复错误。
《编译原理》复习题(看完必过)
《编译原理》复习题(看完必过)一、单项选择题1.将编译程序分成若干个“遍”是为了( B )A.提高程序的执行效率B. 使程序的结构更加清晰C.利用有限的机器内存并提高机器的执行效率D.利用有限的机器内存但降低了机器的执行效率2.不可能是目标代码的是( D )A.汇编指令代码 B.可重定位指令代码C.绝对指令代码 D.中间代码3.词法分析器的输入是( B )A.单词符号串 B.源程序C.语法单位 D.目标程序4.中间代码生成时所遵循的是( C )A.语法规则 B.词法规则C.语义规则 D.等价变换规则5.编译程序是对( D )A.汇编程序的翻译 B.高级语言程序的解释执行C.机器语言的执行 D.高级语言的翻译6.词法分析应遵循( C )A.语义规则 B.语法规则C.构词规则 D.等价变换规则7.词法分析器的输出结果是( C )A.单词的种别编码 B.单词在符号表中的位置C.单词的种别编码和属性值 D.单词属性值8.正规式M1和M2等价是指( C )A.M1和M2的状态数相等 B.M1和M2的有向弧条数相等C.M1和M2所识别的语言集相等 D.M1和M2状态数和有向弧条数相等9.词法分析器作为独立的阶段使整个编译程序结构更加简洁、明确,因此,( B ) A.词法分析器应作为独立的一遍B.词法分析器作为子程序较好C.词法分析器分解为多个过程,由语法分析器选择使用.D.词法分析器并不作为一个独立的阶段10.如果L(M1)=L(M2),则M1与M2( A )A .等价B .都是二义的C .都是无二义的D .它们的状态数相等 11.文法G :S →xSx|y 所识别的语言是( C )A .xyxB .(xyx)* c .x n yx n (n ≥0) d .x *yx *12.文法G 描述的语言L(G)是指( A ) A.⎭⎬⎫⎩⎨⎧∈⇒=+*,|)(T V S G L αααB .⎭⎬⎫⎩⎨⎧⋃∈⇒=+*)(,|)(N T V V S G L ααα C .⎭⎬⎫⎩⎨⎧∈⇒=**,|)(T V S G L αααD .⎭⎬⎫⎩⎨⎧⋃∈⇒=**)(,|)(N T V V S G L ααα 13.有限状态自动机能识别( C )A .上下文无关文法B .上下文有关文法C .正规文法D .短语文法14.如果文法G 是无二义的,则它的任何句子( A ) A .最左推导和最右推导对应的语法树必定相同 B .最左推导和最右推导对应的语法树可能不同 C .最左推导和最右推导必定相同D .可能存在两个不同的最左推导,但它们对应的语法树相同 15.由文法的开始符经0步或多步推导产生的文法符号序列是( C ) A .短语 B .句柄 C .句型 D .句子 16.文法G :E →E+T|T T →T*P|P P →(E)|i则句型P+T+i 的句柄为( B )A .P+TB .PC .P+T+iD .i 17.文法G :S →b|∧|(T) T →T ∨S|S 则FIRSTVT(T)=( C )A .{ b ,∧,( }B .{ b ,∧,) }C .{ b ,∧,(,∨ }D .{ b ,∧,),∨ } 18.产生正规语言的文法为( D )A .0型B .1型C .2型D .3型19.任何算符优先文法( D )优先函数。
编译原理复习题一(含答案)
一、单选题(每题2分,共20分)1. 编译器的()阶段可将源程序的字符流收集到若干记号中。
A. 语法分析B. 语义分析C. 代码生成D. 词法分析2. 文法A aA | b属于正则文法,正则文法在乔姆斯基层次中对应于()文法。
A. 1型B. 2型C. 3型D. 0型3. 某C语言源代码文件包含#include <stdio.h>,()将对源代码进行处理,把文件stdio.h 包含进去。
A.编译器B.解释器C.汇编器D.预处理器4. LL(1)文法的充要条件是()。
A.对于文法中的每条产生式Uα1|α2|…|αn,要求FIRST(αi)∩FIRST(αj)=Φ(i≠j)B.该文法对应的LL(1)分析表中每个项目最多只有一条产生式。
C.A和BD.都不是5. 以下说法中正确的是()。
A.任何语言都可以描述为一个正则表达式。
B.对于任何一个NFA M,都存在一个DFA M’,满足L(M)= L(M’)。
C.任何一个DFA只有一个终态。
D.NFA的弧上标记只含输入字母表中的元素。
6.合成属性的计算可以通过对语法树进行()遍历进行。
A. 前序B.中序C.后序D.任意7.乔姆斯基的2型文法是这样一种语言,其产生式限制为()。
A. α->βB. P->βC. P->a或P->aβD. αPγ->αβγ8. 正则式的“*”读作()。
A. 并且B.连接C.正则闭包D.闭包9. 编译程序中的语义分析器接受以()为单位的输入,并产生信息供以后各阶段使用。
A. 语法树B.子程序C.单词D.语句10.文法A->aAb|ab生成的语言是()。
A. {ab}B.{aAb}C. {anbn|n≥1}D.{anbn|n≥0}二、判断题(每题2分,共10分,对的打√,错的打×)1. 一个LR(0)文法一定是SLR(1)文法。
()2. 在类型声明文法中,类型属性type是继承属性。
编译原理考试题及答案
编译原理考试题及答案一、选择题(每题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. 假设编译器在进行语法分析时,遇到一个语法错误的代码片段,请简述编译器如何处理这种情况。
《编译原理》复习题及答案
《编译原理》课程复习资料一、判断题:1.一个上下文无关文法的开始符,可以是终结符或非终结符。
[ ]2.一个句型的直接短语是唯一的。
[ ]3.已经证明文法的二义性是可判定的。
[ ]4.每个基本块可用一个DAG表示。
[ ]5.每个过程的活动记录的体积在编译时可静态确定。
[ ]6.2型文法一定是3 型文法。
[ ]7.一个句型一定句子。
[ ]8.算符优先分析法每次都是对句柄进行归约。
[ ]9.采用三元式实现三地址代码时,不利于对中间代码进行优化。
[ ]10.编译过程中,语法分析器的任务是分析单词是怎样构成的。
[ ]11.一个优先表一定存在相应的优先函数。
[ ]12.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。
[ ]13.递归下降分析法是一种自下而上分析法。
[ ]14.并不是每个文法都能改写成 LL(1)文法。
[ ]15.每个基本块只有一个入口和一个出口。
[ ]16.一个 LL(1)文法一定是无二义的。
[ ]17.逆波兰法表示的表达试亦称前缀式。
[ ]18.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。
[ ]19.正规文法产生的语言都可以用上下文无关文法来描述。
[ ]20.一个优先表一定存在相应的优先函数。
[ ]21.3型文法一定是2 型文法。
[ ]22.如果一个文法存在某个句子对应两棵不同的语法树,则文法是二义性的。
[ ]二、填空题:1. 称为规范推导。
2.编译过程可分为,,,和五个阶段。
3.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是。
4.从功能上说,程序语言的语句大体可分为语句和语句两大类。
5.语法分析器的输入是,其输出是。
6.扫描器的任务是从中识别出一个个。
7.符号表中的信息栏中登记了每个名字的有关的性质,如等等。
8.一个过程相应的DISPLAY表的内容为。
9.一个句型的最左直接短语称为句型的。
10.常用的两种动态存贮分配办法是动态分配和动态分配。
编译原理期末试题及答案
编译原理期末试题及答案一、选择题(每题2分,共20分)1. 编译器的主要功能是将()代码转换成()代码。
A. 高级语言,低级语言B. 高级语言,机器语言C. 汇编语言,机器语言D. 机器语言,汇编语言答案:B2. 编译过程中,词法分析的输出是()。
A. 语法树B. 语法分析表C. 词法单元D. 抽象语法树答案:C3. 在编译原理中,语法分析通常采用()方法。
A. 递归下降分析B. 动态规划C. 贪心算法D. 回溯算法答案:A4. 语义分析的主要任务是()。
A. 检查语法错误B. 生成中间代码C. 检查语义错误D. 优化代码答案:C5. 编译器的优化通常发生在()阶段。
A. 词法分析B. 语法分析C. 语义分析D. 代码生成答案:D6. 编译器的前端主要负责()。
A. 代码生成B. 代码优化C. 语法分析D. 目标代码生成答案:C7. 编译器的后端主要负责()。
A. 代码生成B. 代码优化C. 语法分析D. 词法分析答案:A8. 编译原理中,LL(1)分析方法的特点是()。
A. 左到右,最右推导B. 左到右,最左推导C. 右到左,最右推导D. 右到左,最左推导答案:B9. 编译原理中,LR(1)分析方法的特点是()。
A. 左到右,最右推导B. 左到右,最左推导C. 右到左,最右推导D. 右到左,最左推导答案:B10. 编译原理中,语法制导翻译的主要思想是()。
A. 根据语法树的结构进行翻译B. 根据词法单元进行翻译C. 根据语法分析表进行翻译D. 根据语义分析表进行翻译答案:A二、填空题(每题2分,共20分)1. 编译器中,用于表示语法规则的产生式通常由非终结符、产生符号和()组成。
答案:产生式右侧2. 在编译原理中,一个文法是()的,如果它的任何两个产生式都不会导致相同的句柄。
答案:无二义性3. 编译器的词法分析阶段通常使用()算法来识别和分类词法单元。
答案:有限自动机4. 语法分析阶段,如果一个文法是左递归的,编译器需要使用()技术来消除左递归。
编译原理试题及答案(期末复习版)
<编译原理>历年试题及答案一.(每项选择2分,共20分)选择题1.将编译程序分成若干个“遍”是为了_b__。
a.提高程序的执行效率b.使程序的结构更加清晰c.利用有限的机器内存并提高机器的执行效率d.利用有限的机器内存但降低了机器的执行效率2.构造编译程序应掌握__d__。
a.源程序b.目标语言c.编译方法d.以上三项都是3.变量应当c_。
a.持有左值b.持有右值c.既持有左值又持有右值d.既不持有左值也不持有右值4.编译程序绝大多数时间花在_d___上。
a.出错处理b.词法分析c.目标代码生成d.管理表格5.词法分析器的输出结果是_c___。
a.单词的种别编码b.单词在符号表中的位置c.单词的种别编码和自身值d.单词自身值6.正规式MI和M2等价是指__c__。
a.MI和M2的状态数相等b.Ml和M2的有向弧条数相等。
C.M1和M2所识别的语言集相等 d.Ml和M2状态数和有向弧条数相等7.中间代码生成时所依据的是—c。
a.语法规则b.词法规则c.语义规则d.等价变换规则8.后缀式ab+cd+/可用表达式__b_来表示。
a.a+b/c+d b.(a+b)/(c+d)c.a+b/(c+d)d.a+b+c/d9.程序所需的数据空间在程序运行前就可确定,称为____c__管理技术。
a.动态存储b.栈式存储c.静态存储d.堆式存储10.堆式动态分配申请和释放存储空间遵守___d_____原则。
a.先请先放b.先请后放c.后请先放d.任意二(每小题10分,共80分)简答题1.画出编译程序的总体结构图,简述各部分的主要功能。
2.已知文法G[E]:E→ET+|T T→TF*|F F→F^|a试证:FF^^*是文法的句型,指出该句型的短语、简单短语和句柄.3.为正规式(a|b)*a(a|b)构造一个确定的有限自动机。
4.设文法G(S):S→(L)|a S|aL→L,S|S(1)消除左递归和回溯;(2)计算每个非终结符的FIRST和FOLLOW;(3)构造预测分析表。
编译原理复习题(含试卷)
*编译原理复习题一.简答题:1) 什么是句子? 什么是语言?解答:句子——设G 是一个给定的文法,S 是文法的开始符号,如果S x (其中x ∈V T *),则称x 是文法的一个句子。
语言——语言是句子的集合。
或——设G[S]是给定文法,则由文法G 所定义的语言L(G)可描述为:L(G)={x │Sx,x ∈V T *} 。
2) DFA 与NFA 有何区别 ?解答:DFA 与NFA 的区别表现为两个方面:一是NFA 可以有若干个开始状态,而DFA 仅只有一个开始状态。
另一方面,DFA 的映象M 是从K ×∑到K ,而NFA 的映象M 是从K ×∑到K 的子集,即映象M 将产生一个状态集合(可能为空集),而不是单个状态。
3) 自顶向下的语法分析方法的基本思想是什么?解答:从文法的开始符号开始,根据给定的输入串并按照文法的产生式一步一步的向下进行直接推导,试图推导出文法的句子,使之与给定的输入串匹配。
4) 自底向上的语法分析方法的基本思想是什么?解答:从给定的输入串(终结符串)开始,根据文法的规则一步一步的向上进行直接归约,试图归约到文法的开始符号。
5) 一个上下文无关文法G 包括哪四个组成部分?解答:一组非终结符号,一组终结符号,一个开始符号,以及一组产生式。
6) 在自底向上的语法分析方法中,分析的关键是什么?解答:关键是寻找句柄。
7)在自顶向下的语法分析方法中,分析的关键是什么?解答:关键是选择候选式。
8)什么是属性文法?答:是在上下文无关文法的基础上,为每个文法符号(含终结符和非终结符)配备若干个属性值,对文法的每个产生式都配备了一组属性计算规则(称为语义规则)。
在语法分析过程中,完成语义规则所描述的动作,从而实现语义处理。
一个属性文法形式的定义为一个三元组AG,AG=(G,V,E)。
其中G为一个上下文无关文法;V为属性的有穷集;E为一组语义规则。
9)语法制导翻译语法制导翻译:定义翻译所必须的语义属性和语义规则,一般不涉及计算顺序。
编译原理期末考试复习题(含答案)
编译原理期末考试复习题(含答案)一、选择题1.代码生成阶段的主要任务是(C)。
A.把高级语言翻译成汇编语言B.把高级语言翻译成机器语言C.把中间代码变换成依赖具体机器的目标代码D.把汇编语言翻译成机器语言2.文法G 所描述的语言是( C )的集合。
A.文法G 的字母表V 中所有符号组成的符号串B.文法G 的字母表V 的闭包V* 中的所有符号串C.由文法的开始符号推出的所有终结符串D.由文法的开始符号推出的所有符号串3.语言是(C)。
A.终结符与非终结符的符号串的集合B.非终结符符号串的集合C.终结符符号串的集合D.产生式的集合4.常用的中间代码形式不含(D)。
A.三元式B.四元式C.逆波兰式D.语法树5.四元式之间的联系是通过(B)实现的。
A.指示器B.临时变量C.符号表D.程序变量6.词法分析器的输出结果是( C )。
A.单词的种别编码B.单词在符号表中的位置C.单词的种别编码和自身值D.单词自身值7.表达式(┐A∨B)∧(C∨D)的逆波兰表示为(B)。
A. ┐AB∨∧CD∨B.A┐B∨CD∨∧C.AB∨┐CD∨∧ D.A┐B∨∧CD∨8.下推自动机识别的语言是( C )A.0型语言 B.1型语言C.2型语言 D.3型语言9. 在规范归约中,用(B)来刻画可归约串。
A.直接短语 B.句柄C.最左素短语 D.素短语10.词法分析器用于识别( C)。
A.字符串 B.语句 C.单词 D.标识符11.一个句型中称为句柄的是该句型的最左(D)A.非终结符号 B.短语 C.句子 D.直接短语12.文法 G[E] :E→T∣E+TT→F∣T * FF→a∣(E)该文法句型 E + F * (E + T) 的简单短语是下列符号串中的(B)。
①(E+T)②E+T ③F ④ F * (E+T)A.①和③B.②和③C.③和④D.③13.通常一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目标代码生成等五个部分,还应包括(C)。
编译原理复习题
一、填空题:〔10分,第1小题每2个1分,其余每空1分〕1、编译程序一般含有八局部,分别是、、、、、、、。
2、编译程序与解释程序的根本区别是3、一个上下文无关文法G包括四个组成局部依次为:一组_____、一个_____、一组_____、一组______。
4、设G是一个文法,S是文法的开始符号,如果S⇒* X,那么称X 是。
二、选择题〔本大题共15小题,每题1分,共15分〕1、编译程序生成的目标程序是机器语言程序。
A、一定B、不一定2、设有文法G[S]=〔{b},{S,B},S,{S→b|bB, B→bS}〕,该文法描述的语言是。
A、b i | i≥0B、b2i | i≥0C、b2i+1 | i≥0D、b2i+1 | i≥13、设有文法G[S]:S→S*S|S+S|〔S〕|a该文法二义性文法A、是B、不是C、无法判断4、汇编程序是将______翻译成______;编译程序是将_______翻译成__________。
A、汇编语言程序B、机器语言程序C、高级语言程序D、汇编语言或机器语言程序5、给定文法A→bA|cc, 下面符号串中,为该文法句子的是。
①cc ②bcbc ③bcbcc ④bccbcc ⑤bbbccA、①B、①③④⑤C、①⑤D、①④⑤E、①②③④⑤6、语法分析的常用方法是。
①自顶向下②自底向上③自左向右④自右向左A、①②③④B、①②C、③④D、①②③7、语言L={a n bb n|n≥1},那么下述文法中,可以产生语言LA、Z→aZb|aAb|b A→aAb|bB、A→aAb A→bC、Z→AbB A→aA|a B→bB|bD、Z→aAb A→aAb|b8、以下正规表达式中________与(a|b)*(c|d)等价。
A、〔a*|b*〕(c|d)B、〔a*|b*〕*(c|d)C、(ab)*(d|c)D、〔a*b*〕(cd)9、算符优先分析法每次都是对进行归约。
A、最左短语B、直接短语C、句柄D、素短语E、最左素短语10、简单优先分析法每次都是对进行归约A、最左短语B、直接短语C、句柄D、素短语E、最左素短语11、以下文法G[S] ]:S→AA A→Aa|a不是LR〔1〕文法,理由是A.、FIRST(S)∩FIRST〔A〕≠∅B、FIRST〔A〕∩FOLLOW〔A〕≠∅C、FIRST〔Aa〕∩FIRST〔a〕≠∅D、都不是12、设有文法G[E]:E→E*E|E+E|〔E〕|a 该文法LR〔1〕文法A、是B、不是C、无法判断13、对于文法G[A]:A→aABe|Ba B→dB|ε有人说,因为FIRST〔aABe〕∩FOLLOW〔A〕≠∅并且FIRST〔Ba〕∩FOLLOW 〔A〕≠∅,所以文法G[A]不是LL〔1〕文法。
编译原理复习资料(试题)
一、单项选择题(将正确答案的字母填入括号,每题1.5分,共30分)1、一般程序设计语言的定义都涉及到( 1.2.3)3个方面。
(1)语法(2)语义(3)语用(4)程序基本符号的确定2、程序语言一般分为( 1 )和( 2 )。
(1)高级语言;(2)低级语言;(3)专用程序语言;(4)通用程序语言3、面向机器语言指的是( B )。
A.用于解决机器硬件设计问题的语言B.特定计算机系统所固有的语言C.各种计算机系统都通用的语言D.只能在一台计算机上使用的语言4.面向机器语言的特点是( D )。
A.程序的执行效率低,编制效率低,可读性差B.程序的执行效率高,编制效率高,可读性强C.程序的执行效率低,编制效率高,可读性强D.程序的执行效率高,编制效率低,可读性差5、程序设计语言常见的数据类型有:1.2.3.4(1)数值型数据(2)逻辑数据(3)字符数据(4)指针类型6、下列程序设计语言中是应用式语言的是:BA、PASCALB、LISPC、VBD、PROLOG7、任何语法结构都可以用( C )来表示。
A、语法树B、树C、抽象语法树D、二义文法树8、字母表是符号的有穷集合,由( C )组成词和句子。
A、字符串B、字符C、符号D、语言9、下列符号是终结符的是( A)。
A、cB、AC、SD、β10、语法树用( C )关系说明了句子中以操作符为核心的操作顺序,同时也说明了每一个操作符的操作对象。
A、上下B、先后C、层次D、关联11、循环语句的语法树为( D )A、 B、 C、 D、12、表达式中间代码的生成可采用( B )。
A 、三地址代码B 、四元式C 、三元式D 、间接三元式13、下列文法中,赋值语句的文法是( C )。
A 、B 、C 、D 、E →E op E 14、词法分析的任务是( A )A 、识别单词B 、分析句子的含义C 、识别句子D 、生成目标代码15、常用的中间代码形式中不含( D )A 、三元式B 、四元式C 、 逆波兰式D 、语法树16、代码优化的目的是( C )A 、节省时间B 、节省空间C 、节省时间和空间D 、把编译程序进行等价转换17、代码生成阶段的主要任务是( C )A 、把高级语言翻译成汇编语言B 、把高级语言翻译成机器语言C 、把中间代码变换成依赖具体机器的目标代码D 、把汇编语言翻译成机器语言18、词法分析器的输入是( B )A 、单词符号串B 、源程序C 、语法单位D 、目标程序19、中间代码的生成所遵循的是( C )A 、语法规则B 、词法规则C 、语义规则D 、等价变换规则20、编译程序是对( D )A 、汇编程序的翻译B 、高级语言程序的解释并执行C 、机器语言的执行D 、高级语言的翻译21、语法分析应遵循( C )A 、语义规则B 、语法规则C 、构词规则D 、等价变换规则22、编译程序各阶段的工作都涉及到( B )A 、语法分析B 、表格管理、出错处理C 、语义分析D 、词法分析23、编译程序工作时,通常有( 1.2.3.4 )阶段。
编译原理考试题及答案
编译原理考试题及答案一、选择题(每题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),并进行语法制导的语义分析。
这一阶段使用诸如自顶向下的递归下降分析、自底向上的移进-规约分析等技术来识别语言结构,并为后续的语义分析和代码生成打下基础。
编译原理试题及答案
编译原理试题及答案一、选择题1. 编译器的主要功能是什么?A. 代码优化B. 语法分析C. 代码生成D. 所有以上选项答案:D2. 下列哪个阶段属于编译过程的前端?A. 语法分析B. 代码生成C. 运行时库链接D. 目标代码优化答案:A3. 在编译原理中,什么是“产生式系统”?A. 一种编程语言的规范B. 一种用于描述语法的系统C. 一种代码优化技术D. 一种代码生成方法答案:B4. 以下哪个是自顶向下的语法分析方法?A. LR分析B. LALR分析C. LL分析D. CYK算法答案:C5. 在编译器的哪个阶段会进行类型检查?A. 词法分析B. 语法分析C. 语义分析D. 代码生成答案:C二、填空题1. 编译器在进行________时,会识别源代码中的各种标识符、常量、运算符等,并将其转换成相应的符号。
答案:词法分析2. 在编译原理中,________图是一种用于描述程序执行过程中变量状态的图,它以节点表示变量的值,以有向边表示程序的控制流。
答案:控制流3. 语法分析的主要任务是根据________规则来分析和构建源程序的语法结构。
答案:语法4. 在编译过程中,________是将源程序中的高级表示转换为机器语言或中间代码的过程。
答案:代码生成5. 编译器的________阶段负责将优化后的代码转换为目标机器可执行的指令序列。
答案:目标代码生成三、简答题1. 简述编译器的一般工作流程。
答:编译器的一般工作流程包括以下几个阶段:首先是词法分析,将源代码文本分解成一系列的记号;其次是语法分析,根据语言的语法规则构建抽象语法树;接着是语义分析,检查源代码的语义正确性并进行类型检查;然后是中间代码生成,将抽象语法树转换为中间表示形式;之后是代码优化,对中间代码进行各种优化以提高效率;最后是代码生成,将优化后的中间代码转换为目标机器的机器代码。
2. 描述自顶向下和自底向上语法分析方法的主要区别。
答:自顶向下的语法分析方法从开始符号开始,尝试将输入的记号序列归约为语法中的产生式规则,直到得到完整的抽象语法树。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编译原理复习题一、是非题1.计算机高级语言翻译成低级语言只有解释一种方式。
(×)3.每个文法都能改写为 LL(1) 文法。
(×)4.算符优先关系表不一定存在对应的优先函数。
(√)5.LR分析方法是自顶向下语法分析方法。
(×)6.“ 用高级语言书写的源程序都必须通过编译,产生目标代码后才能投入运行”这种说法。
(× )7.一个句型的句柄一定是文法某产生式的右部。
(√)8.仅考虑一个基本块,不能确定一个赋值是否真是无用的。
(√ )9.在中间代码优化中循环上的优化主要有不变表达式外提和削减运算强度。
(× )10.对于数据空间的存贮分配,FORTRAN采用动态贮存分配策略。
(×)11.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。
(× )12.递归下降分析法是自顶向下分析方法。
(√ )13.产生式是用于定义词法成分的一种书写规则。
(×)14.在SLR(1)分析法的名称中,S的含义是简单的。
(√)15.综合属性是用于“ 自上而下” 传递信息。
(× )16.符号表中的信息栏中登记了每个名字的属性和特征等有关信息,如类型、种属、所占单元大小、地址等等。
(×)17.程序语言的语言处理程序是一种应用软件。
(×)18.解释程序适用于COBOL 和FORTRAN 语言。
(×)19.一个LL(l)文法一定是无二义的。
(√)20.正规文法产生的语言都可以用上下文无关文法来描述。
(√)21.一张转换图只包含有限个状态,其中有一个被认为是初态,最多只有一个终态。
(×)22.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。
(√)22.逆波兰法表示的表达式亦称后缀式。
(√ )23.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是二义的。
(√ )24.数组元素的地址计算与数组的存储方式有关。
(√)25.算符优先关系表不一定存在对应的优先函数。
(×)26.编译程序是对高级语言程序的解释执行。
(× )27.一个有限状态自动机中,有且仅有一个唯一的终态。
(×)28.一个算符优先文法可能不存在算符优先函数与之对应。
(√ )29.语法分析时必须先消除文法中的左递归。
(×)30.LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。
(√)31.逆波兰表示法表示表达式时无须使用括号。
(√ )32.静态数组的存储空间可以在编译时确定。
(√)33.进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。
(√)34.两个正规集相等的必要条件是他们对应的正规式等价。
(√)35.一个语义子程序描述了一个文法所对应的翻译工作。
(×)36.设r和s分别是正规式,则有L(r|s)=L(r)L(s)。
(×)37.确定的自动机以及不确定的自动机都能正确地识别正规集。
(√)38.词法分析作为单独的一遍来处理较好。
(× )39.构造LR分析器的任务就是产生LR分析表。
(√)40.规范归约和规范推导是互逆的两个过程。
(√)41.同心集的合并有可能产生新的“移进”/“归约”冲突。
(× )42.LR分析技术无法适用二义文法。
(× )43.树形表示和四元式不便于优化,而三元式和间接三元式则便于优化。
(×)44.程序中的表达式语句在语义翻译时不需要回填技术。
(√)45.对中间代码的优化依赖于具体的计算机。
(× )46.若一个句型中出现了某产生式的右部,则此右部一定是该句型的句柄。
(×)47.在程序中标识符的出现仅为使用性的。
(×)48.削减运算强度破坏了临时变量在一基本块内仅被定义一次的特性。
(×)49.编译程序与具体的机器有关,与具体的语言无关。
(×)二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)1.一个编译程序中,不仅包含词法分析,( A ),中间代码生成,代码优化,目标代码生成等五个部分。
A.语法分析B.文法分析C.语言分析D.解释分析2.语法分析器则可以发现源程序中的( D )。
A.语义错误 B.语法和语义错误C.错误并校正D.语法错误3.解释程序处理语言时 , 大多数采用的是( B )方法。
A.源程序命令被逐个直接解释执行B.先将源程序转化为中间代码 , 再解释执行C.先将源程序解释转化为目标程序 , 再执行D.以上方法都可以4.编译程序是一种( B )。
A.汇编程序B.翻译程序C.解释程序 D.目标程序5.文法分为四种类型,即0型、1型、2型、3型。
其中3型文法是( B )。
A.短语文法 B.正则文法C.上下文有关文法 D.上下文无关文法6.通常一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目标代码生成等五个部分,还应包括( C )。
A.模拟执行器 B.解释器 C.表格处理和出错处理D.符号执行器7.一个句型中的最左( B )称为该句型的句柄。
A.短语B.简单短语C.素短语D.终结符号8.文法G[E] :E→T∣E +TT→F∣T ﹡FF→a∣(E )该文法句型E + F ﹡(E +T) 的简单短语是下列符号串中的( B )。
①(E +T )②E +T ③F ④ F ﹡(E +T)A.①和③B.②和③C.③和④D.③9.词法分析器用于识别( C )。
A.句子B.句型C.单词D.产生式10.在自底向上的语法分析方法中,分析的关键是( A )。
A.寻找句柄B.寻找句型C.消除递归D.选择候选式11.文法G 产生的( D )的全体是该文法描述的语言。
A.句型B.终结符集C.非终结符集D.句子12.若文法G 定义的语言是无限集,则文法必然是( A )。
A.递归的B.前后文无关的C.二义性的D.无二义性的13.四种形式语言文法中,1型文法又称为( C )文法。
A.短语结构文法B.前后文无关文法C.前后文有关文法D.正规文法14.一个文法所描述的语言是( A )。
A.唯一的B.不唯一的C.可能唯一,好可能不唯一D.都不对15. ( B )和代码优化部分不是每个编译程序都必需的。
A .语法分析 B .中间代码生成 C .词法分析 D .目标代码生成 16.( B )是两类程序语言处理程序。
A .高级语言程序和低级语言程序 B .解释程序和编译程序 C .编译程序和操作系统 D .系统程序和应用程序 17. 数组的内情向量中肯定不含有数组的( D )的信息。
A .维数B .类型C .维上下界D .各维的界差18. 一个上下文无关文法 G 包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组( D )。
A .句子B .句型C .单词D .产生式19. 文法分为四种类型,即0型、1型、2型、3型。
其中2型文法是( D )。
A .短语文法B .正则文法C .上下文有关文法D .上下文无关文法 20.文法 G 所描述的语言是( C )的集合。
A .文法 G 的字母表 V 中所有符号组成的符号串B .文法 G 的字母表 V 的闭包 V* 中的所有符号串C .由文法的开始符号推出的所有终极符串D .由文法的开始符号推出的所有符号串 21.词法分析器用于识别( C )。
A .字符串 B .语句 C .单词 D .标识符22.文法分为四种类型,即0型、1型、2型、3型。
其中0型文法是( A )。
A .短语文法B .正则文法C .上下文有关文法D .上下文无关文法 24.( A )是一种典型的解释型语言。
A .BASICB .C C .FORTRAND .PASCAL 25.与编译系统相比,解释系统( D )。
A .比较简单 , 可移植性好 , 执行速度快B .比较复杂 , 可移植性好 , 执行速度快C .比较简单 , 可移植性差 , 执行速度慢D .比较简单 , 可移植性好 , 执行速度慢 26.用高级语言编写的程序经编译后产生的程序叫( B )。
A .源程序B .目标程序C .连接程序D .解释程序 27.词法分析器用于识别( A )。
A .字符串B .语句C .单词D .标识符28.编写一个计算机高级语言的源程序后 , 到正式上机运行之前,一般要经过( B )这几步: (1) 编辑 (2) 编译 (3) 连接 (4) 运行A .(1)(2)(3)(4)B .(1)(2)(3)C .(1)(3)D .(1)(4)29.把汇编语言程序翻译成机器可执行的目标程序的工作是由( B )完成的。
A .编译器 B .汇编器 C .解释器 D .预处理器 31.词法分析器的输出结果是( C )。
A .单词的种别编码B .单词在符号表中的位置C .单词的种别编码和自身值D .单词自身值 32. 正规式 M 1 和 M 2 等价是指( C )。
A .M1和M2的状态数相等 B .M1和M2的有向边条数相等 C .M1和M2所识别的语言集相等 D .M1和M2状态数和有向边条数相等 33. 文法G :S→xSx|y 所识别的语言是( C )。
A .xyxB .(xyx)*C .)0( n yx x nnD .x*yx*34.如果文法G 是无二义的,则它的任何句子α ( A )。
A .最左推导和最右推导对应的语法树必定相同B .最左推导和最右推导对应的语法树可能不同C .最左推导和最右推导必定相同D .可能存在两个不同的最左推导,但它们对应的语法树相同 35.构造编译程序应掌握( D )。
A .源程序B .目标语言C .编译方法D .以上三项都是36.四元式之间的联系是通过( B )实现的。
A.指示器B.临时变量C.符号表D.程序变量37.表达式(┐A∨B)∧(C∨D)的逆波兰表示为( B )。
A.┐AB∨∧CD∨B.A┐B∨CD∨∧ C.AB∨┐CD∨∧D.A┐B∨∧CD∨38. 优化可生成( D )的目标代码。
A.运行时间较短B.占用存储空间较小C.运行时间短但占用内存空间大D.运行时间短且占用存储空间小39.下列( C )优化方法不是针对循环优化进行的。
A.强度削弱B.删除归纳变量C.删除多余运算D.代码外提40.编译程序使用( B )区别标识符的作用域。
A.说明标识符的过程或函数名B.说明标识符的过程或函数的静态层次C.说明标识符的过程或函数的动态层次D.标识符的行号41.编译程序绝大多数时间花在( D )上。
A.出错处理B.词法分析C.目标代码生成D.表格管理42.编译程序是对( D )。
A.汇编程序的翻译B.高级语言程序的解释执行C.机器语言的执行D.高级语言的翻译43.采用自上而下分析,必须( C )。