《编译原理》练习题

合集下载

编译原理试题及答案

编译原理试题及答案

编译原理试题及答案一、选择题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. LR 分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错 地点。 () 2. 构造 LR 分析器的任务就是产生 LR 分析表。 () 3 .LR 文法肯定是无二义的,一个无二义文法决不会是 LR 文法。 () 4. 在任何时候,分析栈的活前缀 X1X2...Xm 的有效项目集就是栈顶状态 Sm 所 在的那个 项目集。 () 5 .同心集的合并有可能产生新的“移进”/“归约”冲突。 () 6. 由于 LR(0) 分析表构造简单,所以它的描述能力强、适用面宽; LR(1) 分析 表因构造复杂而描述能力弱、适用面窄。 () 7 .所有 LR 分析器的总控程序都是一样的,只是分析表各有不同。 () 8. LR 分析技术无法适用二义文法。 () 9. 项目 A →β 1 ·β 2 对活前缀αβ 1 是有效的,其条件是存在规范推导 S'*= aAW= a β 1 β 2 ω。 () 10. SLR(1) 文法的特点是:当符号栈中的符号串为βα,而面临的输入符号为α 则存在 把α归约为 A 的规范句型的前缀β A α时,方可把 a 归约为 A 。 ( )
已知文法 G[S] : S → dAB A → aA|a B → Bb| ε (1) 试问 G[S] 是否为正规文法,为什么? (2) G[S] 所产生的语言是什么? (3) G[S] 能否改写为等价的正规文法 ?
答:(1)因为S → dAB不符合正规文法产生式A→aB或A→a, a∈VT* ,A,B∈VN的格式,故G[S]不是正规文法。 (2) G[S]产生的语言为: L={danbm|n≥1,m≥0} (3)可以得到G[S]对应的正规文法G’[S]: S→dA A→aA|aB|a B→bB|ε
编译原理
第一章---第六章补充
例1

编译原理练习题

编译原理练习题

编译原理练习题一、选择题(每题2分,共10分)1. 编译器的主要功能是将源代码转换为:A. 可执行文件B. 汇编代码C. 机器代码D. 中间代码2. 词法分析阶段的主要任务是:A. 将源代码分解成多个语句B. 将源代码分解成多个单词C. 将源代码分解成多个符号D. 将源代码分解成多个表达式3. 下列哪个是自顶向下的语法分析方法?A. LL(1)分析B. LR分析C. LALR分析D. GLR分析4. 语义分析的主要任务是:A. 检查语法正确性B. 检查类型正确性C. 检查代码风格D. 检查代码的可读性5. 编译过程中的优化主要发生在:A. 词法分析阶段B. 语法分析阶段C. 语义分析阶段D. 代码生成阶段二、填空题(每空1分,共10分)6. 编译器的前端主要包括词法分析、语法分析、________和________四个阶段。

7. 编译器的后端主要包括代码生成、________和________两个阶段。

8. 编译原理中的“三地址代码”是指每个指令最多有三个________。

9. 编译过程中的“死代码”是指________。

10. 编译器的优化技术可以分为________优化和________优化。

三、计算题(每题5分,共10分)11. 假设有一个简单的算术表达式:a * b + c * d。

请使用三地址代码表示这个表达式,并给出相应的指令序列。

四、简答题(每题5分,共10分)12. 简述编译原理中词法分析器的作用和实现方法。

五、论述题(每题15分,共15分)13. 论述编译原理中语法分析的两种主要方法:自顶向下分析和自底向上分析,并比较它们的优缺点。

《编译原理》练习题

《编译原理》练习题

《编译原理》练习题一一、填空题(每空1分)1.设G [S ]是一个文法,我们把能由文法的 (1) 推导出来的符号串α称为G 的一个句型。

当句型α仅由 (2) 组成时 (即α∈V T *),则将它称为G 产生的句子。

2.从某一给定的状态q 出发,仅经过若干条 (3) 的矢线所能达到的状态所组成的集合称为ε-CLOSURE(q)。

3.设G=(V N ,V T ,P,S)是一文法,我们说G 中的一个符号X ∈V N ∪V T 是有用的,是指X 至少出现在 (4) 的推导过程中,否则,就说X 是无用的。

我们将不含形如A→A 的产生式和不含无用符号及无用产生式的文法称为 (5) 。

4.我们常采用形如 (class, value)的二元式作为一个单词的 (6) 。

其中,class 是一个整数,用来指示该单词的 (7) ,value 则是单词之值。

5.一个文法G[S]可表示成形如 (8) 的四元式。

其中V N ,V T ,P 均为非空的有限集,分别称为非终结符号集、终结符号集和产生式集, S ∈V N 为文法的开始符号。

此外,将出现在各产生式左部和右部的一切符号所组成的集合称为 (9) ,记作V 。

显然,V=V N ∪V T ,V N ∩V T =∅。

6.通常,可通过两种途径来构造词法分析程序。

其一是根据对语言中各类单词的某种描述或定义,用 (10) 构造词法分析程序;另外一种途径是所谓词法分析程序的(11) 。

7.设G 为一文法,A→α是G 的一个产生式,如果α具有υAδ的形式,其中υ,δ不同时为ε,则称产生式A→α是 (12) 。

若存在推导δυαA A *⇒⇒,则称产生式A→α是 (13) 。

8.设M=(K,Σ,f,S 0,Z)为一DFA ,并设s 和t 是M 的两个不同状态,我们说状态s,t 为某一输入串w (14) ,是指从s,t 中之一出发,当扫视完w 之后到达M 的终态,但从其中的另一个状态出发,当扫视完同一个w 后而进入 (15) 。

完整版编译原理试题

完整版编译原理试题

编译原理考试题及答案汇总一、选择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__。

编译原理练习题及答案

编译原理练习题及答案

第一章练习题(绪论)一、选择题1.编译程序是一种常用的软件。

A) 应用B) 系统C) 实时系统D) 分布式系统2.编译程序生成的目标代码程序是可执行程序。

A) 一定B) 不一定3.编译程序的大多数时间是花在上。

A) 词法分析B) 语法分析C) 出错处理D) 表格管理4.将编译程序分成若干“遍”将。

A)提高编译程序的执行效率;B)使编译程序的结构更加清晰,提高目标程序质量;C)充分利用内存空间,提高机器的执行效率。

5.编译程序各个阶段都涉及到的工作有。

A) 词法分析B) 语法分析C) 语义分析D) 表格管理6.词法分析的主要功能是。

A) 识别字符串B) 识别语句C) 识别单词D) 识别标识符7.若某程序设计语言允许标识符先使用后说明,则其编译程序就必须。

A) 多遍扫描B) 一遍扫描8.编译方式与解释方式的根本区别在于。

A) 执行速度的快慢B) 是否生成目标代码C) 是否语义分析9.多遍编译与一遍编译的主要区别在于。

A)多遍编译是编译的五大部分重复多遍执行,而一遍编译是五大部分只执行一遍;B)一遍编译是对源程序分析一遍就立即执行,而多遍编译是对源程序重复多遍分析再执行;C)多遍编译要生成目标代码才执行,而一遍编译不生成目标代码直接分析执行;D)多遍编译是五大部分依次独立完成,一遍编译是五大部分交叉调用执行完成。

10.编译程序分成“前端”和“后端”的好处是A)便于移植B)便于功能的扩充C)便于减少工作量D)以上均正确第二章练习题(文法与语言)一、选择题1.文法 G 产生的 (1) 的全体是该文法描述的语言。

A.句型B. 终结符集C. 非终结符集D. 句子2.若文法 G 定义的语言是无限集,则文法必然是 (2) A递归的 B 上下文无关的 C 二义性的 D 无二义性的3. Chomsky 定义的四种形式语言文法中, 0 型文法又称为(A)文法;1 型文法又称为(C)文法;2 型语言可由(G) 识别。

A 短语结构文法B 上下文无关文法C 上下文有关文法D 正规文法E 图灵机F 有限自动机G 下推自动机4.一个文法所描述的语言是(A);描述一个语言的文法是(B)。

编译原理习题及答案(整理后)

编译原理习题及答案(整理后)

第一章1、将编译程序分成若干个“遍”是为了。

b.使程序的结构更加清晰2、构造编译程序应掌握。

a.源程序b.目标语言c.编译方法3、变量应当。

c.既持有左值又持有右值4、编译程序绝大多数时间花在上。

d.管理表格5、不可能是目标代码。

d.中间代码6、使用可以定义一个程序的意义。

a.语义规则7、词法分析器的输入是。

b.源程序8、中间代码生成时所遵循的是- 。

c.语义规则9、编译程序是对。

d.高级语言的翻译10、语法分析应遵循。

c.构词规则二、多项选择题1、编译程序各阶段的工作都涉及到。

b.表格管理c.出错处理2、编译程序工作时,通常有阶段。

a.词法分析b.语法分析c.中间代码生成e.目标代码生成三、填空题1、解释程序和编译程序的区别在于是否生成目标程序。

2、编译过程通常可分为5个阶段,分别是词法分析、语法分析中间代码生成、代码优化和目标代码生成。

3、编译程序工作过程中,第一段输入是源程序,最后阶段的输出为标代码生成程序。

4、编译程序是指将源程序程序翻译成目标语言程序的程序。

一、单项选择题1、文法G:S→xSx|y所识别的语言是。

a. xyxb. (xyx)*c.x n yx n(n≥0) d. x*yx*2、文法G描述的语言L(G)是指。

a. L(G)={α|S+⇒α , α∈V T*}b. L(G)={α|S*⇒α, α∈V T*}c. L(G)={α|S*⇒α,α∈(V T∪V N*)} d. L(G)={α|S+⇒α, α∈(V T∪V N*)}3、有限状态自动机能识别。

a. 上下文无关文法b. 上下文有关文法c.正规文法d. 短语文法4、设G为算符优先文法,G 的任意终结符对a、b有以下关系成立。

a. 若f(a)>g(b),则a>bb.若f(a)<g(b),则a<bc. a~b都不一定成立d. a~b一定成立5、如果文法G是无二义的,则它的任何句子α。

a. 最左推导和最右推导对应的语法树必定相同b. 最左推导和最右推导对应的语法树可能不同c. 最左推导和最右推导必定相同d. 可能存在两个不同的最左推导,但它们对应的语法树相同6、由文法的开始符经0步或多步推导产生的文法符号序列是。

编译原理考试题及答案

编译原理考试题及答案

编译原理考试题及答案一、选择题(每题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、汇编程序是将a 翻译成b ,编译程序是将c 翻译成d .a.汇编语言程序b.机器语言程序c.高级语言程序d. a 或者 be. a 或者 cf. b 或者 c 2、下面关于解释程序的描述正确的是 b . (1) 解释程序的特点是处理程序时不产生目标代码(2) 解释程序适用于COBOL 和FORTRAN 语言(3) 解释程序是为打开编译程序技术的僵局而开发的a. (1)(2)b. (1)c. (1)(2)(3)d.(2)(3)3、高级语言的语言处理程序分为解释程序和编译程序两种.编译程序有五个阶段,而解释程序通常缺少(1)e 和(1)b .其中,(1)e 的目的是使最后阶段产生的目标代码更为高效. 与编译系统相比,解释系统(2)d .解释程序处理语言时,大多数采用的是(3)b 方法. (4)a 就是一种典型的解释型语言. (1): a. 中间代码生成b.目标代码生成c.词法分析d.语法分析 e.代码优化(2): a.比较简单,可移植性好,执行速度快 b.比较复杂,可移植性好,执行速度快 c.比较简单,可移植性差,执行速度慢 d.比较简单,可移植性好,执行速度慢(3): a.源程序命令被逐个直接解释执行b.先将源程序转化为之间代码,再解释执行c.先将源程序解释转化为目标程序,在执行d.以上方法都可以(4) : a. BASIC b. C c. FORTRAN d. PASCAL4、用高级语言编写的程序经编译后产生的程序叫b .用不同语言编写的程序产生 b 后,可用g 连接在一起生成机器可执行的程序.在机器中真正执行的是 e . a. 源程序 b. 目标程序 c. 函数 d. 过程 e. 机器指令代码 f. 模块g. 连接程序h.程序库5、要在某一台机器上为某种语言构造一个编译程序,必须掌握下述三方面的内容: c , d , f .a. 汇编语言b. 高级语言c. 源语言d. 目标语言e. 程序设计方法f. 编译方法g. 测试方法h. 机器语言6、由于受到具体机器主存容量的限制,编译程序几个不同阶段的工作往往被组合成(1)d ,诸阶段的工作往往是(2)d 进行的. (1) a. 过程 b. 程序 c. 批量 d.遍(2) a. 顺序 b. 并行 c. 成批 d.穿插7、编译过程中,语法分析器的任务就是 b .(1) 分析单词是怎样构成的(2) 分析单词串是如何构成语句和说明的(3) 分析语句和说明是如何构成程序的(4) 分析程序的结构8、编写一个计算机高级语言的源程序后,到正式上机运行之前,一般要经过 b 这几步. (1) 编辑(2) 编译(3) 连接(4) 运行9、编译程序必须完成的工作有a .(1) 词法分析(2) 语法分析(3) 语义分析(4) 代码生成(5) 之间代码生成(6) 代码优化a. (1)(2)(3)(4)b. (1)(2)(3)(4)(5)c. (1)(2)(3)(4)(5)(6)d.(1)(2)(3)(4)(6) e. (1)(2)(3)(5)(6) 10、编译程序是一种。

编译原理练习题4答案

编译原理练习题4答案

编译原理练习题4一、选择题1. 在编译过程中,词法分析器的任务是将()转换为单词符号。

A. 源程序B. 字符串C. 字符D. 代码A. 词法分析B. 语法分析C. 代码D. 程序调试3. 形式语言中的文法G[S]:S→aSb | ab,该文法产生的语言是()。

A. {a^n b^n | n≥0}B. {a^n b^n+1 | n≥0}C. {a^n b^n |n≥1} D. {a^n b^n1 | n≥1}A. 构造语法分析树B. 检查语法错误C. 中间代码D. 识别单词符号二、填空题1. 编译过程一般可以分为五个阶段,分别是______、______、______、______和______。

2. 在编译原理中,______分析是编译过程的第一个阶段,其任务是从源程序中识别出一个个单词符号。

3. 若文法G[S]:S→AB,A→a,B→b,则该文法的开始符号是______。

4. 在语法分析中,LL(1)分析法是一种______分析方法。

三、判断题1. 编译器的主要功能是将源程序翻译成目标程序。

()2. 词法分析器不会删除无用的空白字符和注释。

()3. 语法分析器负责检查源程序中的语法错误。

()4. 任何程序设计语言都可以通过编译器转换为机器语言。

()四、简答题1. 简述编译器的基本任务。

2. 什么是上下文无关文法?请举例说明。

3. 请简要介绍自顶向下分析和自底向上分析的区别。

4. 什么是LR分析法?它有什么优点?五、算法题2. 给定文法G[S]:S→AB,A→a,B→b,请使用递归下降分析法编写一个语法分析器。

x = y + z w;六、综合题(a, (a, a))(a, a, a)abababba4. 请描述如何使用 yacc 工具一个编译器的语法分析器部分。

七、代码阅读题int factorial(int n) {if (n == 0)return 1;elsereturn n factorial(n 1);}def print_numbers(n):if n == 0:returnprint_numbers(n 1)print(n)print_numbers(5)public static void swap(int arr, int i, int j) { int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}function findMax(arr) {let max = arr[0];for (let i = 1; i < arr.length; i++) {if (arr[i] > max) {max = arr[i];}}return max;}八、设计题G[S]:S→E,E→E + T | T,T→T F | F,F→(E) | id a = b + c d e / f;x = 3y = x + 4z = y 2MOV R1, 3ADD R2, R1, 4MUL R3, R2, 2答案一、选择题1. C2. D3. A4. D二、填空题1. 词法分析、语法分析、语义分析、中间代码、代码优化2. 词法3. S4. 自顶向下三、判断题1. √2. ×3. √4. ×四、简答题1. 编译器的基本任务包括:词法分析、语法分析、语义分析、中间代码、代码优化和目标代码。

编译原理练习题库

编译原理练习题库
大学课程《编译原理》练习测试题库
一、填空 1.若源程序是用高级语言编写的,目标程序是______,则其翻译程序称为编译程序。 2.词法分析和语法分析本质上都是对源程序的______进行分析。 3.如果源语言(编写源程序的语言)是高级语言, 而目标语言是某计算机的汇编语言或机器语 言,则这种翻译程序称为_____。 4.对编译程序而言,输入数据是_______,输出结果是________。 5. ______,是构成语言文法的单词,是语法成分的最小单位。 6.由 PL/0 的 EBNF 可知,PL/0 语言可看成是 PASCAL 语言的子集,它的编译程序是一个 __________。 7.由于 PL/0 编译程序采用_________,所以语法分析过程 BLOCK 是整个编译过程的核心。 8.用语法图描述语法规则的优点是______、________。 9. 每个非终结符是一个语法成分,在书写语言程序时并不出现,它是由 _________ 和 _________、或终结符串定义的。 10.PL/0 的目标程序为假想栈式计算机的汇编语言,与具体计算机______。 11.PL/0 的编译程序和目标程序的解释执行程序都是用_______书写的, 因此 PL/0 语言可 在配备_________的任何机器上实现。 12.PL/0 编译程序是用 PASCAL 语言书写的, 整个编译程序(包括主程序)是由______个嵌套 及并列的过程或函数组成 13.当源程序编译正确时,PL/0 编译程序自动调用__________,对目标代码进行解释执行, 并按用户程序要求输入数据和输出运行结果。 14.由于对某些非终结符可以递归定义,这就使得_________可用有穷的文法描述。 15. ______的任务是识别由词法分析给出的单词符号序列在结构上是否符合给定的文法规 则。 16. PL/0 编译程序的语法分析采用了____________。 17.语法分析程序除总控外主要有两大部分的功能,即_________和__________. 18.PL/0 的词法分析程序 GETSYM, 是一个独立的过程, 其功能是为_________提供单词用的, 是______的基础,它把输入的字符串形式的源程序分割成一个个单词符号。 19.每个过程应有过程首部以定义局部于它自己过程的常量、 变量和过程标识符, 也称_____。 20.词法分析程序 GETSYM 将完成的任务有:______, 识别保留字;_______,拼数,拼复合词, 输出源程序. 21.如果一个 PL/0 语言的单词序列在整个语法分析中, 都能逐个得到匹配, 直到_________, 这时就说所输入的程序是正确的。 22.若要构造程序设计语言的编译程序,则首先要对程序设计语言本身有较为精确的描述。 而关于程序设计语言的描述,将涉及_____、语义和______三个方面。 23.凡是具有某种特殊性质的客体的聚合,都可称为______。 24.如果集合中元素个数为零, 即集合中不含有任何元素, 这样的集合称为_______, 记为φ 。 25.设有集合 A 和 B,如果 A 和 B 有相同的元素,则称这两个集合是_______. 26.设 A、B 为任意两个集合,由所有属于集合 A 或属于集合 B 的元素组成的集合,叫做集合 A 与 B 的_______. 27. 设 A、B 为任意两个集合,由所有用于集合 A 且属于集合 B 的元素组成的集合,称为集 合 A 与 B 的_______.

(完整word版)编译原理练习题

(完整word版)编译原理练习题

一章: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、语法错误6、高级语言源程序经编译后产生的程序是。

A、源程序B、目标程序C、函数D、过程1、扫描器的任务是从源程序中识别出一个个单词符号。

2、高级语言源程序有两种执行方式,即解释和编译。

判断:高级语言编写的源程序都必须通过编译,产生目标代码后才能运行。

多遍扫描的编译程序的多遍是指多次重复读源程序。

高级语言程序到低级语言程序的转换是基于语义的等价变换。

编译程序中错误处理的任务是对检查出的错误进行修改。

目标程序一定是机器语言程序。

连接装配程序可把经编译程序产生的目标程序变成可执行的机器语言程序。

简答题:1、请指出下列错误信息可能是编译的哪个阶段报告的?①else没有匹配的if;②数组下标越界;③使用的函数没有定义;④在数中出现了非数字信息。

答:①语法分析阶段②语义分析与中间代码生成阶段③语义分析与中间代码生成阶段④词法分析阶段2、何谓源程序、中间代码和目标代码?它们三者之间有何种关系?答:所谓源程序是指用某种高级语言编写的程序,它是编译程序的加工对象。

目标程序是指低级语言(机器语言或汇编语言)编写的程序,它是编译程序的加工结果。

中间代码是其结构介于源程序和目标程序之间的一种机内表示形式,它是编译程序产生的中间临时结果。

它们三者之间的关系是等价关系,即结构不同,但语义相同。

二章:1、文法G:S-xSx|y所识别的语言是。

A、xyx B 、(xyx)* C、x n yx n(n≥0) D、x*yx*2、设有文法G[S]=({S,B},{b},{S-b|bB,B-bS},S),该文法所描述的语言是。

编译原理练习题及答案

编译原理练习题及答案

第一章练习题(绪论)一、选择题1.编译程序是一种常用的软件。

A) 应用B) 系统C) 实时系统D) 分布式系统2.编译程序生成的目标代码程序是可执行程序。

A) 一定B) 不一定3.编译程序的大多数时间是花在上。

A) 词法分析B) 语法分析C) 出错处理D) 表格管理4.将编译程序分成若干“遍”将。

A)提高编译程序的执行效率;B)使编译程序的结构更加清晰,提高目标程序质量;C)充分利用内存空间,提高机器的执行效率。

5.编译程序各个阶段都涉及到的工作有。

A) 词法分析B) 语法分析C) 语义分析D) 表格管理6.词法分析的主要功能是。

A) 识别字符串B) 识别语句C) 识别单词D) 识别标识符7.若某程序设计语言允许标识符先使用后说明,则其编译程序就必须。

A) 多遍扫描B) 一遍扫描8.编译方式与解释方式的根本区别在于。

A) 执行速度的快慢B) 是否生成目标代码C) 是否语义分析9.多遍编译与一遍编译的主要区别在于。

A)多遍编译是编译的五大部分重复多遍执行,而一遍编译是五大部分只执行一遍;B)一遍编译是对源程序分析一遍就立即执行,而多遍编译是对源程序重复多遍分析再执行;C)多遍编译要生成目标代码才执行,而一遍编译不生成目标代码直接分析执行;D)多遍编译是五大部分依次独立完成,一遍编译是五大部分交叉调用执行完成。

10.编译程序分成“前端”和“后端”的好处是A)便于移植B)便于功能的扩充C)便于减少工作量D)以上均正确第二章练习题(文法与语言)一、选择题1.文法 G 产生的 (1) 的全体是该文法描述的语言。

A.句型B. 终结符集C. 非终结符集D. 句子2.若文法 G 定义的语言是无限集,则文法必然是 (2) A递归的 B 上下文无关的 C 二义性的 D 无二义性的3. Chomsky 定义的四种形式语言文法中, 0 型文法又称为(A)文法;1 型文法又称为(C)文法;2 型语言可由(G) 识别。

A 短语结构文法B 上下文无关文法C 上下文有关文法D 正规文法E 图灵机F 有限自动机G 下推自动机4.一个文法所描述的语言是(A);描述一个语言的文法是(B)。

编译原理练习题

编译原理练习题

《编译原理》练习题一、判题(1分/小题,共15分)1、能将某一种语言程序等价转换成另一种语言程序的系统程序称为编译程序。

2、NFA可以含有多个初态,初态同时也可以是终态。

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

4、规范规约与最左推导互为逆过程。

5、分析表中的动作包括移近、规约、接受和报错四种。

6、自顶向下分析过程是一种试探过程,需要进行回溯。

7、如果一个文法是二义文法,则它存在某个句子对应两棵不同的语法树。

8、中间代码只有三元式和四元式两种表示形式。

9、单词的内部码由单词的种别和单词的值两部分构成。

10、状态转换图每次只能识别一个单词。

11、一个LL(1)文法一定是无二义的。

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

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

14、一转换图只包含有限个状态,其中有一个被认为是初态,最多只有一个终态。

15、正规集可以用NFA表示出来。

16.一个有穷自动机有且只有一个终态。

17.算符优先关系表不一定存在对应的优先函数。

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

19.算符优先归约不是规范归约。

20.在程序流图中,对任意两个结点m和n而言,如果从流图的首结点出发,到达n的一条通路要经过m,则称m是n的必经结点。

二、填空题(1分/空,共15分)1、语法分析是依据语言的 1 规则进行的,中间代码产生是依据语言的 2 规则进行的。

2、程序语言的单词符号一般可以分为 3 、 4 、 5 、 6 、 7 等等。

3、“上下文无关文法”是描述 8 的工具。

4、如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是 9 。

5、产生式是用于定义 10 的一种书写规则6、语法分析最常用的两类方法是 11 和 12 分析法。

7、单词二元式包括单词种别code和 13 。

8、常用的中间代码有 14 和 15 表示形式。

9.一个文法所描述的语言是;描述一个语言的文法是。

编译原理练习题

编译原理练习题

一.名词解释:1)前缀 2)可归前缀 3)活前缀 4)简单短语 5)扫描遍 6)句柄7)句型 8)句子 9)非终结符 10)终结符 11)属性文法12)语法制导翻译 13)后缀式 14)短语 15)基本块二.简答题:1)什么是句子?什么是语言?2)DFA与NFA有何区别 ?3)自顶向下语法分析的思想是什么?4)一个上下文无关文法G包括哪四个组成部分?5)在自底向上的语法分析方法中,分析的关键是什么?6)在自顶向下的语法分析方法中,分析的关键是什么?7)编译程序中语法分析器接收以什么为单位的输入?8)若一个文法是递归的,则它所产生的语言的句子是可枚举的吗?9)编译程序生成的目标程序是不是一定是机器语言的程序?10)词法分析器是用于识别句型、句子、还是单词的?11)“用高级语言书写的源程序都必须通过编译,产生目标代码后才能投入运行”这种说法正确吗?12)把汇编语言程序翻译成机器可执行的目标程序的工作是由什么完成的?13)自底向上的语法分析方法的基本思想是什么?14)图示运行时存储空间的划分(分为哪几个区)。

15)词法分析的主要任务是什么?16)常用的中间语言种类有哪几种?17)文法G所描述的语言是什么的集合?18)乔姆斯基把文法分为四种类型,即0型、1型、2型、3型。

其中2型文法叫什么?19)编译程序是一种解释程序还是什么程序?20)按逻辑上划分,编译程序第二步工作是什么?21)源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序,则其翻译程序称为什么?22)编译方式与解释方式的根本区别为什么?23)常见的两种动态存贮分配策略有哪两种?24)常用的参数传递方式有哪三种?25)语法分析的任务是什么?26)局部优化是局限于一个什么范围内的一种优化?27)文法等价的定义是什么?28)在语法分析处理中,FIRST集合、FOLLOW集合、SELECT集合均是什么集合?29)通常一个编译程序中应包括哪七个部分?32)如果编译程序生成的目标程序是汇编语言程序,则源程序的执行分为哪三个阶段?33)翻译程序是这样一种程序,它能够将用什么转换成与其等价的用乙语言书写的程序?34)在属性文法中,综合属性与继承属性是如何传递信息的?35)代码优化的主要目标是什么?1.S '→S {print:“0”}2.S →a A {print:“1”}3.A →Ab {print:“2”}4.A →d {print:“3”} 其中:开始状态:0 终止状态:2b三.应用题1)消除下列文法G[A]的左递归。

编译原理试题

编译原理试题

编译原理试题一、选择题(共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、将编译程序分成若干个“遍”是为了。

a.提高程序的执行效率b.使程序的结构更加清晰c.利用有限的机器内存并提高机器的执行效率d.利用有限的机器内存但降低了机器的执行效率2、构造编译程序应掌握。

a.源程序b.目标语言c.编译方法d.以上三项都是3、编译程序绝大多数时间花在上。

a.出错处理b.词法分析c.目标代码生成d.管理表格4、词法分析器的输入是。

a.单词符号串b.源程序c.语法单位d.目标程序5、中间代码生成时所遵循的是- 。

a.语法规则b.词法规则c.语义规则d.等价变换规则6、编译程序是对。

a.汇编程序的翻译b.高级语言程序的解释执行c.机器语言的执行d.高级语言的翻译7、语法分析应遵循。

a.语义规则b.语法规则c.构词规则d.等价变换规则二、多项选择题1、编译程序各阶段的工作都涉及到。

a.语法分析b.表格管理c.出错处理d.语义分析e.词法分析2、编译程序工作时,通常有阶段。

a.词法分析b.语法分析c.中间代码生成d.语义检查e.目标代码生成三、填空题1、解释程序和编译程序的区别在于。

2、编译过程通常可分为5个阶段,分别是、语法分析、代码优化和目标代码生成。

3、编译程序工作过程中,第一段输入是,最后阶段的输出为程序。

4、编译程序是指将程序翻译成程序的程序。

一、单项选择题1、文法G:S→xSx|y所识别的语言是。

a. xyxb. (xyx)*c. x n yx n(n≥0)d. x*yx*2、文法G描述的语言L(G)是指。

a. L(G)={α|S+⇒α , α∈V T*}b. L(G)={α|S*⇒α, α∈V T*}c. L(G)={α|S*⇒α,α∈(V T∪V N*)}d. L(G)={α|S+⇒α, α∈(V T∪V N*)}3、有限状态自动机能识别。

a. 上下文无关文法b. 上下文有关文法c.正规文法d. 短语文法4、设G为算符优先文法,G的任意终结符对a、b有以下关系成立。

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

《编译原理》练习题一一、填空题(每空1分)1.设G [S ]是一个文法,我们把能由文法的 (1) 推导出来的符号串α称为G 的一个句型。

当句型α仅由 (2) 组成时 (即α∈V T *),则将它称为G 产生的句子。

2.从某一给定的状态q 出发,仅经过若干条 (3) 的矢线所能达到的状态所组成的集合称为ε-CLOSURE(q)。

3.设G=(V N ,V T ,P,S)是一文法,我们说G 中的一个符号X ∈V N ∪V T 是有用的,是指X 至少出现在 (4) 的推导过程中,否则,就说X 是无用的。

我们将不含形如A→A 的产生式和不含无用符号及无用产生式的文法称为 (5) 。

4.我们常采用形如 (class, value)的二元式作为一个单词的 (6) 。

其中,class 是一个整数,用来指示该单词的 (7) ,value 则是单词之值。

5.一个文法G[S]可表示成形如 (8) 的四元式。

其中V N ,V T ,P 均为非空的有限集,分别称为非终结符号集、终结符号集和产生式集, S ∈V N 为文法的开始符号。

此外,将出现在各产生式左部和右部的一切符号所组成的集合称为 (9) ,记作V 。

显然,V=V N ∪V T ,V N ∩V T =∅。

6.通常,可通过两种途径来构造词法分析程序。

其一是根据对语言中各类单词的某种描述或定义,用 (10) 构造词法分析程序;另外一种途径是所谓词法分析程序的 (11) 。

7.设G 为一文法,A→α是G 的一个产生式,如果α具有υA δ的形式,其中υ,δ不同时为ε,则称产生式A→α是 (12) 。

若存在推导δυαA A *⇒⇒,则称产生式A→α是 (13) 。

8.设M=(K,Σ,f,S 0,Z)为一DFA ,并设s 和t 是M 的两个不同状态,我们说状态s,t 为某一输入串w (14) ,是指从s,t 中之一出发,当扫视完w 之后到达M 的终态,但从其中的另一个状态出发,当扫视完同一个w 后而进入 (15) 。

9.把最右推导称为 (16) ,而把右句型称为 (17) 。

10.如果从状态转换图的初态出发,分别沿着一切可能的路径到达 (18) ,并将每条路径各矢线上的 (19) 依次连接起来,便得到状态转换图所能识别的全部字符串,这些字符串所组成的集合也就是该状态转换图所识别的语言。

二、选择题(每空2分)1. 下列文法中,不是产生语言 {ab n a∣n≥1} 的文法。

A.A→aBa B→b∣bBB.A→aB B→ba∣bBC.A→aB B→ba∣bBaD.A→aB B→bC C→bC∣a2. 设有文法G[S]:S→aAB A→bAc∣ε B→bB∣Ae∣ε则经消去ε-产生式后与G等价的文法G1[S]为。

A.S→aA∣aB∣aAB∣a A→bc∣bAc B→bB∣Ae∣b∣eB.S→aAB A→bAc B→bB∣AeC.S→aA∣aB A→bc B→b∣eD.S→aA∣aB∣a A→bc∣bAc B→bB∣Ae∣b∣e3. 文法 G 产生的的全体是该文法描述的语言。

A .句型 B. 终结符集 C. 非终结符集 D. 句子4. 设M为一确定有限自动机,并设s 和t是M的两个不同状态。

如果s和t ,则称s和t等价。

A.不可区分 B.可划分 C.可区分 D.待区分5. 设有文法G[S]:S→aS∣W∣U U→a V→bV∣ac W→aW则经化简后与G等价的文法G1[S]为。

A.S→aS∣W V→bV∣ac W→aWB.S→aS∣U U→aC.S→aS∣W∣U U→a W→aWD.S→aS V→bV∣ac6. 若文法 G 定义的语言是无限集,则文法G必然是。

A.前后文无关的 B.递归的 C.二义性的 D.无二义性的7. 下列说法中正确的是 。

A .一个确定的有限自动机实际上是相应的状态转换图的一种形式描述。

B .一个状态转换图是由一组矢线连接的有限个结点所组成的无回路有向图。

C .所谓一个DFA M 状态数的最小化,是指构造一个与之等价的DFA M ′,使它们有相同的接受集。

D .对于有同一接受集的FA ,与之等价的DFA 在同构意义下是唯一的。

8. 下列文法中, 不是产生语言}1{12≥+n a n 的文法。

A .A →aBaB →a ∣aBaB .A →aB B →aa ∣BaaC .A →aAA A →aD .A →aBB B →a ∣aBB9. 如下的表示形式中,不能表示程序语言中单词结构的是 。

A .左线性文法B .形如(Class ,Value )的二元式C .正规式D .正规文法三、证明题1.试证明文法S →aB ∣bA A →aS ∣bAA ∣a B →aBB ∣bS ∣b为二义性文法。

(10分)2. 试证明文法: S →a AB A →aA ∣a B →aB ∣b 为二义性文法。

(10分)四、简答题1.试构造一文法,使其描述如下语言: (15分)L(G)={ a n b m c m d n ∣m,n ≥1 }2.消除下列文法中的单产生式。

(10分)S→AbB∣A A→AB∣caB∣B B→Aa∣b3.对正规式((a∣b) *∣ab*)b ,构造与其相应的状态转换图。

(15分)4.消除下列文法中的ε-产生式。

(10分)S→ABb∣a A→aB∣caB∣ε B→aA∣b∣ε5.试描述由下列文法所产生的语言。

(10分)S→aAd A→aAd∣bBc B→bBc∣e6.消除下列文法中的单产生式。

(10分)S→aFbM∣F F→M∣abc M→abF∣c7.化简下列文法:(10分)S→B ab∣cC B→bS∣b C→Da D→Cb∣CDa 8.对正规式(a∣ab)*ab*,构造与其相应的状态转换图。

(15分)9.试构造一正规文法,使其描述如下语言:(10分)L(G)={ ab m cb n a∣m≥1, n≥0 }10.试描述由下列文法所产生的语言。

(15分)S→aAbB A→A ab∣ε B→aA∣aC C→cC∣d 五、应用题1.对于如下的状态转换矩阵(1) 分别画出相应的状态转换图;(10分)(2) 写出相应的3型文法。

(10分)2.将如图所示的NFA确定化。

(20分)3.将如图所示的具有ε动作的NFA确定化。

(20分)4.将如图所示的DFA最小化。

(20分)5.将如图所示的DFA最小化。

(25分)6.对于如下的状态转换矩阵(1) 画出相应的状态转换图;(10分)(2) 写出相应的3型文法。

(10分)7.设有如下正规文法G[S]:S→aA∣aB A→bB∣b B→bB∣bC C→bC∣a (1)构造与文法G[S]相应的状态转换图;(10分)(2)将所得的NFA确定化。

(15分)8.将如图所示的NFA确定化。

(15分)《编译原理》练习题二一、填空题(每空1分,共10分)1.所谓递归下降法,是指对文法的每一非终结符号,都根据相应产生式各候选式的结构,为其编写一个 (1) ,用来识别该非终结符号所表示的 (2) 。

2.在每一LR(0)项目[A→α·β]中放置一个 (3) a,使之成为[A→α·β,a]的形式,我们将此种项目称为一个 (4) 。

3.所谓 (5) ,就是对文法中的 (6) 都附加一个语义动作或语义子程序,且在语法分析过程中,每当需要使用一个产生式进行推导或归约时,语法分析程序除执行相应的 (7) 外,还要执行相应的语义动作或调用相应的语义子程序。

4.LL(1)分析表可用一个 (8) 表示,它的每一行与文法的一个非终结符号相关联,而其每一列则与文法的一个终结符号或 (9) 相关联。

5.若在一个文法G中,不含有形如 (10) 的产生式,其中A,B∈V N,则称G 为算符文法。

6.将每一运算符都置于其 (11) 的表达式称为后缀表示,也称为逆波兰表示。

7.把流程图中具有如下性质的一组结点称为程序中的一个循环:(ⅰ) 在这组结点中,有惟一的 (12) ,使得从循环外到循环内任何结点的所有通路,都必通过此结点;(ⅱ) 这一组结点是 (13) 。

8.语法分析的基本任务是:根据语言的语法规则 (即根据描述该语言的前后文无关文法),分析源程序的 (14) ,即分析如何由这些单词组成各种语法范畴,并在分析过程中,对源程序进行 (15) 。

9.所谓句型的素短语,是指一个句型中具有这样性质的短语:短语中至少含有一个(16) ,且除它自身外,不再包含其它的 (17) 。

10.一个文法符号X的 (18) 我们称之为语义属性或简称为属性,用形如X.ATTR的记号来表示文法符号X的相关语义属性。

11.表示流程图中各结点间控制关系的一种直观而有效的方法是用树形结构,称之为(19) 。

12.目前,已存在许多语法分析方面的方法。

但就产生语法树的方向而言,可大致把它们分为 (20) 和 (21) 两大类。

13.将形如A→αX·β的项目称为A→α·Xβ的 (22) 。

14.记录和一个数组有关的信息,如维数n、各维的上、下界l k和u k的数据结构称为数组的 (23) 。

15.基本块是程序中具有下述性质的 (24) :它有惟一的入口和惟一的出口,它们分别是块中的第1个操作和最末一个操作,且块中的各个操作按顺序执行,不出现(25) 。

16.若一文法G的任何两个符号之间 (26) 一种优先关系,且任意两个不同的产生式均无 (27) ,则称G为简单优先文法。

17.把在数据区给变量分配的存储单元地址称为 (28) ,而把在目标程序运行时存放在相应单元中的值称为 (29) 。

18.如果从流程图的首结点到流程图中某一结点n的所有通路都要经过结点d,我们就说结点d控制了结点n,或者把d称为n的 (30) ,记作 (31) 。

二、选择题(每空2分)1. 下列文法中,是LL(1)文法。

A.S→bBS′a S′→aBS′∣ε A→S∣a B→AcB.S→bS∣bA∣b A→aA∣aC.E→E+T∣T T→T*F∣F F→(E)∣iD.S→bBS′ S′→aBS′∣ε A→S∣a B→Ac2. 下列文法中,是简单优先文法。

A.E→E+T∣T T→T*F∣F F→(E)∣iB.S→A/ A→aA∣AS∣/C.E→E+E∣E*E∣(E)∣iD.E→E1 E1→E1+T1∣T1 T1→T T→T*F∣F F→(E)∣i3. 当扫视到数组说明进行语义处理时,必须把一个数组的如维数、各维的上、下界等记录下来。

为了便于引用,通常是把上述内容存放于数组相应的之中。

A.信息向量 B.内情向量 C.地址向量 D.指针向量4. 下列说法中正确的是。

A. 所谓递归下降法,是指只能对具有左递归性的文法进行分析的一种语法分析方法。

B. 如果一个文法具有二义性,则它必然不是LL(1)文法。

相关文档
最新文档