编译原理练习题
编译原理习题及答案
( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 10.× 22.√
) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) 11.
二、填空题: 2.编译过程可分为 ( 词法分析) , (语法分析) , (语义分析与中间代码生成 ) , (优化)和(目标 代码生成 )五个阶段。 3.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是( 二义性的 4.从功能上说,程序语言的语句大体可分为( 5.语法分析器的输入是( 单词符号 6.扫描器的任务是从( 源程序中 执行性 )语句和(说明性 ) 。 ) 。 ) ,其输出是( 语法单位 )中识别出一个个( 单词符号 ) 。 )语句两大类。
因此,文法 G[为二义文法。
五.计算题(10 分) 已知文法 A->aAd|aAb| ε
判断该文法是否是 SLR(1) 文法,若是构造相应分析表,并对输入串 ab# 给出分析过程。 解:增加一个非终结符 S/后,产生原文法的增广文法有: S'->A A->aAd|aAb|ε 下 面 构 造 它 的 LR(0) 项 目 集 规 范 族 为 :
对输入串 ab#给出分析过程为:
一、是非题:
1.一个上下文无关文法的开始符,可以是终结符或非终结符。 2.一个句型的直接短语是唯一的。 3.已经证明文法的二义性是可判定的。 4.每个基本块可用一个 DAG 表示。 5.每个过程的活动记录的体积在编译时可静态确定。 6.2 型文法一定是 3 型文法。 7.一个句型一定句子。 8.算符优先分析法每次都是对句柄进行归约。 X 9.采用三元式实现三地址代码时,不利于对中间代码进行优化。 10.编译过程中,语法分析器的任务是分析单词是怎样构成的。 11.一个优先表一定存在相应的优先函数。 13.递归下降分析法是一种自下而上分析法。 14.并不是每个文法都能改写成 LL(1)文法。 15.每个基本块只有一个入口和一个出口。 16.一个 LL(1)文法一定是无二义的。 17.逆波兰法表示的表达试亦称前缀式。 18.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。 19.正规文法产生的语言都可以用上下文无关文法来描述。 20.一个优先表一定存在相应的优先函数。 21.3 型文法一定是 2 型文法。 22.如果一个文法存在某个句子对应两棵不同的语法树, 则文法是二义性的。 答案:1.× 12.√ 13.× 2.× 14.√ 3.× 15.√ 4.√ 16.√ 5.√ 17.× 6.× × 18.√ 19.√ 20.× 21.√ 7.× 8.× 9.√ X 12.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。
编译原理练习题
编译原理练习题一、选择题(每题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. 编译原理的主要任务是()。
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. 请分析该编译器的设计思路和实现方法,并说明其优缺点。
《编译原理》练习题
《编译原理》练习题一一、填空题(每空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) 。
编译原理试题及答案
参考答案一、单项选择题(共10小题,每小题2分,共20分)1.语言是A .句子的集合B .产生式的集合C .符号串的集合D .句型的集合 2.编译程序前三个阶段完成的工作是 A .词法分析、语法分析和代码优化 B .代码生成、代码优化和词法分析C .词法分析、语法分析、语义分析和中间代码生成D .词法分析、语法分析和代码优化3.一个句型中称为句柄的是该句型的最左A .非终结符号B .短语C .句子D .直接短语 4.下推自动机识别的语言是A .0型语言B .1型语言C .2型语言D .3型语言5.扫描器所完成的任务是从字符串形式的源程序中识别出一个个具有独立含义的最小语法单位即A . 字符B .单词C .句子D .句型 6.对应Chomsky 四种文法的四种语言之间的关系是 A .L 0⊂L 1⊂L 2⊂L 3 B .L 3⊂L 2⊂L 1⊂L 0C .L 3=L 2⊂L 1⊂L 0D .L 0⊂L 1⊂L 2=L 3 7.词法分析的任务是A .识别单词B .分析句子的含义C .识别句子D .生成目标代码 8.常用的中间代码形式不含A .三元式B .四元式C .逆波兰式D .语法树 9. 代码优化的目的是A .节省时间B .节省空间C .节省时间和空间D .把编译程序进行等价交换 10.代码生成阶段的主要任务是 A .把高级语言翻译成汇编语言 B .把高级语言翻译成机器语言C .把中间代码变换成依赖具体机器的目标代码装 订 线D.把汇编语言翻译成机器语言二、填空题(本大题共5小题,每小题2分,共10分)1.编译程序首先要识别出源程序中每个(单词),然后再分析每个(句子)并翻译其意义。
2.编译器常用的语法分析方法有(自底向上)和(自顶向下)两种。
3.通常把编译过程分为分析前端与综合后端两大阶段。
词法、语法和语义分析是对源程序的(分析),中间代码生成、代码优化与目标代码的生成则是对源程序的(综合)。
完整版编译原理试题
编译原理考试题及答案汇总一、选择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)。
《编译原理》历年试题及答案
<编译原理>历年试题及答案一.(每项选择2分,共20分)选择题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.正规式MI和M2等价是指____。
a. MI和M2的状态数相等b.Ml和M2的有向弧条数相等。
C.M1和M2所识别的语言集相等 d. Ml和M2状态数和有向弧条数相等7.中间代码生成时所依据的是—。
a.语法规则 b.词法规则 c.语义规则 d.等价变换规则8.后缀式ab+cd+/可用表达式___来表示。
a.a+b/c+d b.(a+b)/(c+d) c.a+b/(c+d) d.a+b+c/d9.程序所需的数据空间在程序运行前就可确定,称为______管理技术。
a.动态存储b.栈式存储c.静态存储d.堆式存储10.堆式动态分配申请和释放存储空间遵守________原则。
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→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.将源代码转换为目标代码2、在编译原理中,词法分析器的主要任务是()。
A.将源代码转换为中间代码B.将源代码转换为机器码C.将源代码转换为汇编代码D.识别源代码中的单词并确定其类别3、编译原理中的“语法分析”是指()。
A.根据语法规则将源代码转换为中间代码B.根据语法规则将源代码转换为机器码C.根据语法规则将源代码转换为汇编代码D.根据语法规则将源代码分解成单词和短语4、编译原理中的“语义分析”是指()。
A.检查源代码是否符合语法规则B.检查源代码是否有语义错误C.将源代码转换为中间代码D.将源代码转换为机器码5、编译原理中的“优化”是指()。
A.对中间代码进行优化,使其更加高效B.对机器码进行优化,使其更加快速C.对汇编代码进行优化,使其更加简洁明了D.对源代码进行优化,使其更加易于阅读和理解二、多项选择题1、编译原理中的“编译器”包括以下哪些部分?()A.词法分析器B.语法分析器C.语义分析器D.优化器E.目标代码生成器2、编译原理中的“中间代码”可以是以下哪些形式?()A.三码B.汇编语言C.目标代码D.机器码E.以上都不是3、编译原理中的“优化”包括以下哪些方面?()A.局部优化B.全局优化C.中间代码优化D.机器码优化E.以上都是4、下列哪些问题是编译原理所要解决的问题?()A.词法分析中的单词识别B.语法分析中的语法错误检查C.语义分析中的类型检查D.优化中的程序运行速度优化E.以上都是船舶原理考试试题一、选择题(每题2分,共20分)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.船舶横移速度与船长的比值二、简答题(每题10分,共30分)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) 分布式系统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)。
编译原理样题(含答案)
L2: F:=F-1 goto L1 十三、对PL/0语言扩充单词-=和--: (第2章) 请完成下列识别单词‘-’,‘-=’和‘--’(设单词内码分别为 MINUS,MINUSBECOME和MINUSMINUS)的词法分析算法: if ( CH=='-' ) { ① ; if ( ② ) { SYM=MINUSBECOME; GetCh(); } else if ( CH=='-' ) { ③ } else ④ }
六 解:文法G(S): S aSb S aa S bb 七 解: (1)(消除左递归,提公因左因子) S→aFS'|+aFS' S'→+aFS'|ε F→*aF' F'→F|ε (2) FIRST(S)={a,十} FOLLOW(S)={#} FIRST(50)={+,ε } FOLLOW(S')={#} FIRST(F)={*} FOLLOW(F)=(+,#)
二 判断题 1、最左归约也称为规范归约。(第3章) 2、逆波兰法表示的表达式把运算对象放在运算符的后面。(第8章) 3、同心集的合并有可能产生“归约/归约”冲突。(第7章) 4、DFA可以通过多条路径识别一个符号串。(第4章) 5、动态数组的存储空间在编译时就可完全确定。(第10章) 三 填空题 1、文法 进项目 3、句柄 语义 2、待约项目 4、词法 移
十二、将下面程序划分为基本块,并画出其程序流图。
read(A,B) F:=1 C:=A*A D:=B*B if C<D goto L1 E:=A*A F:=F+1 E:=E+F write(E) halt L1: E:=B*B F:=F+2 E:=E+F write(E) if E>100 goto L2 halt
编译原理习题及答案(整理后)
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.目标程序 8、中间代码生成时所遵循的是- 。 a.语法规则 b.词法规则 c.语义规则 d.等价变换规则 9、编译程序是对 。 a.汇编程序的翻译 b.高级语言程序的解释执行 c.机器语言的执行 d.高级语言的翻译 10、语法分析应遵循 。 a.语义规则 b.语法规则 c.构词规则 d.等价变换规则 二、多项选择题 1、编译程序各阶段的工作都涉及到 。 a.语法分析 b.表格管理 c.出错处理 d.语义分析 e.词法分析
10、产生正规语言的文法为 。 a. 0型 b. 1型 c. 2型 d. 3型 11、采用自上而下分析,必须 。 a. 消除左递归 b. 消除右递归 c. 消除回溯 d. 提取公共 左因子 12、在规范归约中,用 来刻画可归约串。 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. 最左推导的逆过程 b. 最右推导的逆过程 c. 规范推导 d. 最左归约的逆过程 二、多项选择题 1、下面哪些说法是错误的 。 a. 有向图是一个状态转换图 b. 状态转换图是一个有向图 c.有向图是一个DFA d.DFA可以用状态转换图表示 2、对无二义性文法来说,一棵语法树往往代表了 。 a. 多种推导过程 b. 多种最左推导过程 c.一种最左推导过 程 d.仅一种推导过程 e.一种最左推导过程 3、如果文法G存在一个句子,满足下列条件 之一时,则称该文法 是二义文法。 a. 该句子的最左推导与最右推导相同 b. 该句子有两个不同的最左推导 c. 该句子有两棵不同的最右推导 d. 该句子有两棵不同的语法树 e.该句子的语法树只有一个 4、有一文法G:S→AB A→aAb|ε B→cBd|ε 它不产生下面 集合。 a. {anbmcndm|n,m≥0} b. {anbncmdm|n,m>0} c. {anbmcmdn|n,m≥0} d. {anbncmdm|n,m≥0} e. {anbncndn|n≥0}
编译原理试题
编译原理题库一、选择题:1.编译原理是对(C )。
A 、机器语言的执行B 、汇编语言的翻译C 、高级语言的翻译D 、高级语言程序的解释执行2.编译程序是将高级语言程序翻译成D 。
A 、汇编语言程序 B 、机器语言程序C 、高级语言程序 D 、汇编语言或者机器语言程序3.文法:G :S →xSx | y 所识别的语言是(D )。
A 、x n yx m B 、(xyx)*C 、x *yx * D 、x n yxm (n ≥0)4.设有文法G[I]:I →I0|I1|I a|Ic|a|b|c下列符号串中是该文法的句子的有B 。
①ab0 ②a0c01 ③aaa ④bc10可选项有A 、① B 、②③④ C 、③④ D 、①②③④5.词法分析器的输出结果是(C )。
A 、单词自身值B 、单词在符号表中的位置C 、单词的种别编码D 、单词的种别编码和自身值6.为了使编译程序能够对程序设计语言进行正确的翻译,必须采用_C_方法定义程序设计语言。
A 、非形式化B 、自然语言描述问题C 、形式化D 、自然语言和符号体系相结合7. 若文法G 定义的语言是无限集,则文法必然是(C )A.先后文无关文法B.正规文法C.二义性文法D.递归文法8、描述一个语言的文法是B 。
A 、惟一的B 、不惟一的C 、个数有限的9、表达式(a+b )*c 的逆波兰表示为_C_A 、ab+c* B 、abc+* C 、a*c+b*c10、递归下降分析法和预测分析法要求描述语言的文法是_C_A 、正规文法B 、LR(1)文法C、LL (1)文法D 、右线性文法11编写一个计算机高级语言的源程序后,到正式上机运行之前,普通要经过_A_这几步①编辑② 编译③ 连接 ④运行A 、①②③④B 、①②③C 、①③D 、①④12、符号表的查找普通可以使用_B_:①顺序查找 ②折半查找 ③杂凑查找 ④排序查找可选项有:A 、①②③④ B 、①② C 、③④ D 、①②③13、语法分析的常用方法是B :①自顶向下 ②自底向上 ③自左向右 ④自右向左 可选项有:A 、①②③④B 、①②C 、③④D 、①②③14、LR 语法分析栈中存放的状态是识别文法规范句型_A_的DFA 状态。
编译原理考试试题
编译原理考试试题一、选择题(每题 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、符号表的作用是。
编译原理练习题
《编译原理》练习题一、判题(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. 编译器的主要功能是什么?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. 描述自顶向下和自底向上语法分析方法的主要区别。
答:自顶向下的语法分析方法从开始符号开始,尝试将输入的记号序列归约为语法中的产生式规则,直到得到完整的抽象语法树。
(完整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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
“编译原理”练习题一、选择题1、汇编程序是将 a 翻译成 b ,编译程序是将 c 翻译成 d .a.汇编语言程序b.机器语言程序c.高级语言程序d. a 或者 be. a 或者 cf. b 或者 c2、下面关于解释程序的描述正确的是 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、编译程序是一种 B 。
A. 汇编程序B. 翻译程序C. 解释程序D. 目标程序11、按逻辑上划分,编译程序第二步工作是 C 。
A. 语义分析B. 词法分析C. 语法分析D. 代码优化12、通常一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目标代码生成等五个部分,还应包括 C 。
A.模拟执行器B.解释器C.表格处理和出错处理D.符号执行器13、文法G所描述的语言是 C 的集合。
A.文法G的字母表V中所有符号组成的符号串B.文法G的字母表V的闭包V*中的所有符号串C.由文法的开始符号推出的所有终极符串D.由文法的开始符号推出的所有符号串14、乔姆斯基(Chomsky)把文法分为四种类型,即0型、1型、2型、3型。
其中3型文法是 B 。
A.短语文法B.正则文法C.上下文有关文法D.上下文无关文法15、文法G[N]=({b},{N,B},N,{N→b│bB,B→bN}),该文法所描述的语言是C 。
A. L(G[N])={b i│i≥0}B. L(G[N])={b2i│i≥0}C. L(G[N])={b2i+1│i≥0}D. L(G[N])={b2i+1│i≥1}16、一个句型中的最左 B 称为该句型的句柄。
可选项有:A. 短语B. 简单短语C. 素短语D. 终结符号17、设G是一个给定的文法,S是文法的开始符号,如果S x(其中x∈V*),则称x是文法G 的一个 B 。
A. 候选式B. 句型C. 单词D. 产生式18、一个上下文无关文法G包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组 D 。
A. 句子B. 句型C. 单词D. 产生式19、文法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) ③20、若一个文法是递归的,则它所产生的语言的句子 A 。
A.是无穷多个B.是有穷多个C.是可枚举的D.个数是常量21、词法分析器用于识别 C 。
A. 句子B. 句型C. 单词D. 产生式22、在语法分析处理中,FIRST集合、FOLLOW集合、SELECT集合均是 B 。
A. 非终极符集B.终极符集C. 字母表D. 状态集23、编译程序中语法分析器接收以 A 为单位的输入。
A. 单词B. 表达式C. 产生式D. 句子24、在自底向上的语法分析方法中,分析的关键是 A 。
A. 寻找句柄B. 寻找句型C. 消除递归D. 选择候选式25、在LR分析法中,分析栈中存放的状态是识别规范句型 C 的DFA状态。
A.句柄B. 前缀C. 活前缀D. LR(0)项目26、词法分析的任务是(A)A.识别单词 B.分析句子的含义 C.识别句子 D.生成目代码27、代码优分的目的是(C)A.节省时间B.节省空间C.节省时间和空间D.把编译程序进行等价交换28、代码生成阶段的主要任务是(C)A.把高级语言翻译成汇编语言B.把高级语言翻译成机器语言C.把中间代码变换成依赖具体机器的目标代码D.把汇编语言翻译成机器语言29、在LR分析法中,分析栈中存放的状态是识别规范句型 C 的DFA状态。
A.句柄B. 前缀C. 活前缀D. LR(0)项目30、一个上下文无关文法G包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组 D 。
A. 句子B. 句型C. 单词D. 产生式二、是非判断题1、正规文法产生的语言都可以用上下文无关文法来描述。
(×)2、如果一个文法是递归的,则其产生的语言的句子是无穷个。
(√)3、文法的二义性和语言的二义性是两个不同的概念。
(√)4、一个LL( l)文法一定是无二义的。
(√)5、在规范规约中用最左素短语来刻划可归约串。
(×)6、目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。
(√)7、编译程序是对汇编程序的翻译。
(×)8、计算机高级语言翻译成低级语言只有解释一种方式。
(×)9、在编译中进行语法检查的目的是为了发现程序中所有错误。
(×)10、甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。
(×)11、正则文法其产生式为A→a,A→Bb, A,B∈V N,a、b∈V T。
(√)12、每个文法都能改写为LL(1)文法。
(×)13、递归下降法允许任一非终极符是直接左递归的。
(×)14、算符优先关系表不一定存在对应的优先函数。
(√)15、自底而上语法分析方法的主要问题是候选式的选择。
(×)16、LR法是自顶向下语法分析方法。
(×)18、若一个句型中出现了某产生式的右部,则此右部一定是该句型的句柄。
(×)19、一个句型的句柄一定是文法某产生式的右部。
(√)20、在程序中标识符的出现仅为使用性的。
(×)21、在程序中标识符的出现仅为使用性的。
(×)三、名词解释题1、扫描遍:指编译程序对源程序或中间代码程序从头到尾扫描一次。
2、短语:设G[Z]是给定文法, w=xuy∈V+,为该文法的句型,如果满足下面两个条件:① Z xUy;② U u;则称句型xuy 中的子串u是句型xuy的短语。
3、简单短语:设G[Z]是给定文法, w=xuy∈V+,为该文法的句型,如果满足下面两个条件:① Z xUy;② U u;则称句型xuy 中的子串u是句型xuy的简单短语(或直接短语)。
4、句柄:R一个句型中的最左简单短语称为该句型的句柄。
5、语法分析:按文法的产生式识别输入的符号串是否为一个句子的分析过程。
6、活前缀:若S′ αA ω αβω是文法G′中的一个规范推导,G′是G 的拓广文法,符号串γ是αβ的前缀,则称γ是G 的,也是G′的一个活前缀。
其中 S'为文法开始符号。
或:可归前缀的任意首部。
7、可归前缀:是指规范句型的一个前缀,这种前缀不含句柄之后的任何符号。
8、LR(0)项目:把产生式右部某位置上标有圆点的产生式称为相应文法的一个LR(0)项目。
9、语义规则:对于文法的每个产生式都配备了一组属性的计算规则,称为语义规则。
10、翻译方案:将属性文法中的语义规则用花括号{ }括起来,插在产生式右部的合适地方,指明语义规则的计算次序,陈述一些细节,得到一种语义动作与语法分析交错的表示方法,以表述语义动作在语法分析过程中的执行时刻,称之为翻译方案。
11、后缀式:一种把运算量(操作数)写在前面把算符写在后面(后缀)的表示法。
即 一个表达式E 的后缀形式可以如下定义:(1) 如果E 是一个变量或常量,则E 的后缀式是E 自身。
(2) 如果E 是E 1 op E 2形式的表达式,这里op 是任何二元操作符,则E 的后缀式为E 1’E 2’op,这里E 1’和E 2’分别为E 1和E 2的后缀式。
(3) 如果E 是(E 1)形式的表达式,则E 1的后缀式就是E 的后缀式。
12、过程活动:一个过程的活动指的是该过程的一次执行。
就是说,每次执行一个过程体,产生该过程体的一个活动。
13、活动记录:为了管理过程在一次执行中所需要的信息,使用一个连续的存储块,这样一个连续的存储块称为活动记录。
14、活动的生存期:指的是从执行某过程体第一步操作到最后一步操作之间的操作序,包括执行过程时调用其它过程花费的时间。
15、 基本块的DAG :一个基本块的DAG 是一种其结点带有下述标记或附加信息的DAG 。