最新编译原理复习题(经典)

合集下载

编译原理期末复习题(含答案)

编译原理期末复习题(含答案)

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 )优先函数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 )。

相关文档
最新文档