《编译原理》练习题
编译原理试题及答案

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