文档库 最新最全的文档下载
当前位置:文档库 › 编译原理模拟题1

编译原理模拟题1

编译原理模拟题1
编译原理模拟题1

一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分)

1.计算机高级语言翻译成低级语言只有解释一种方式。( )

2.在编译中进行语法检查的目的是为了发现程序中所有错误。( )

3.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。 ( )

4.正则文法其产生式为 A->a , A->Bb, A,B∈VN , a 、b∈VT 。 ( )

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

6.递归下降法允许任一非终极符是直接左递归的。 ( )

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

8.自底而上语法分析方法的主要问题是候选式的选择。 ( )

9.LR 法是自顶向下语法分析方法。 ( )

10.简单优先文法允许任意两个产生式具有相同右部。 ( )

参考答案:

1、A

2、C

3、D

4、B

5、B

6、B

7、C

8、C

9、B 10、D

三、填空题(每空1分,共10分)

1.编译程序的工作过程一般可以划分为词法分析,语法分析,语义分析,仲间代码生成,代码优化等几个基本阶段,同时还会伴有_____和 _____。

2.若源程序是用高级语言编写的,_____是机器语言程序或汇编程序,则其翻译程序称为 _____ 。

3.编译方式与解释方式的根本区别在于_____。

4.对编译程序而言,输入数据是_____, 输出结果是_____。

5.产生式是用于定义_____的一种书写规则。

6.语法分析最常用的两类方法是_____和_____分析法。

参考答案:

1.表格处理出错处理

2.目标程序编译程序

3.是否生成目标代码

4.源程序目标程序

5.语法成分

6.自上而下自下而上

四、简答题(20分)

1. 什么是句子?什么是语言 ?

参考答案:(每个2分,共4分)

答:(1)设G是一个给定的文法,S是文法的开始符号,如果S x(其中x∈VT*),则称x是文法的一个句子。

(2)设G[S]是给定文法,则由文法G所定义的语言L(G)可描述为: L(G)={x│S x,x∈VT*} 。

2. 写一文法,使其语言是偶正整数的集合,要求:

(1)允许0打头;

(2) 不允许0打头。

参考答案:(每个2分,共4分)

解:(1)G[S]=({S,P,D,N},{0,1,2,…,9},P,S)

P:

S->PD|D

P->NP|N

D->0|2|4|6|8

N->0|1|2|3|4|5|6|7|8|9

(2)G[S]=({S,P,R,D,N,Q },{0,1,2,…,9},P,S)

P:

S->PD|P0|D

P->NR|N

R->QR|Q

D->2|4|6|8

N->1|2|3|4|5|6|7|8|9

Q->0|1|2|3|4|5|6|7|8|9

3. 已知文法 G[E] 为:

E→T|E+T|E-T

T→F|T*F|T/F

F→ ( E ) |i

① 该文法的开始符号(识别符号)是什么?

② 请给出该文法的终结符号集合 VT 和非终结符号集合 VN 。

③ 找出句型 T+T*F+i 的所有短语、简单短语和句柄。

参考答案:

(每个2分,共4分)

解:① 该文法的开始符号(识别符号)是E。

②该文法的终结符号集合VT={+、-、*、/、(、)、i}。非终结符号集合VN={E、T、F}。

③句型T+T*F+I的短语为i、T*F、第一个T、T+T*F+i; 简单短语为i、T*F、第一个T;句柄为第一个T。

4. 构造正规式相应的 NFA : 1(0|1)*101

参考答案:(每个2分,共4分)

解:1(0|1)* 101对应的NFA为

5. 写出表达式(a+b*c)/(a+b)-d的逆波兰表示和三元式序列。

参考答案:(4分)

逆波兰表示:abc*+ab+/d-

三元式序列:① (*,b,c) ② (+,a,①) ③ (+,a,b) ④ (/,②,③) ⑤ (-,④,d)

五.计算题(10分)

构造下述文法 G[S] 的自动机:

S->A0

A->A0|S1|0

该自动机是确定的吗?若不确定,则对它确定化。

参考答案:

解:由于该文法的产生式S->A0,A->A0|S1中没有字符集VT的输入,所以不是确定的自动机。要将其他确定化,必须先用代入法得到它对应的正规式。把S?A0代入产生式A?S1有:A=A0|A01|0=A(0|01)|0=0(0|01)*。代入S->A0有该文法

的正规式:0(0|01)*0,所以,改写该文法为确定的自动机为:

由于状态A有3次输入0的重复输入,所以上图只是NFA,下面将它确定化:

下表由子集法将NFA转换为DFA:

由上表可知DFA为:

《编译原理》模拟期末试题汇总 6套,含答案

《编译原理》模拟试题一 一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分) 1.计算机高级语言翻译成低级语言只有解释一种方式。(×) 2.在编译中进行语法检查的目的是为了发现程序中所有错误。(×) 3.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。 (√ ) 4.正则文法其产生式为 A->a , A->Bb, A,B∈VN , a 、b∈VT 。 (×) 5.每个文法都能改写为 LL(1) 文法。 (√) 6.递归下降法允许任一非终极符是直接左递归的。 (√) 7.算符优先关系表不一定存在对应的优先函数。 (×) 8.自底而上语法分析方法的主要问题是候选式的选择。 (×) 9.LR 法是自顶向下语法分析方法。 (×) 10.简单优先文法允许任意两个产生式具有相同右部。 (×) 二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分) 1.一个编译程序中,不仅包含词法分析,_____,中间代码生成,代码优化,目标代码生成等五个部分。 A.( ) 语法分析B.( )文法分析C.( )语言分析D.( )解释分析 2.词法分析器用于识别_____。 A.( ) 字符串B.( )语句 C.( )单词 D.( )标识符 3.语法分析器则可以发现源程序中的_____。 A.( ) 语义错误 B.( ) 语法和语义错误 C.( ) 错误并校正D.( ) 语法错误 4.下面关于解释程序的描述正确的是_____。

(1) 解释程序的特点是处理程序时不产生目标代码 (2) 解释程序适用于 COBOL 和 FORTRAN 语言 (3) 解释程序是为打开编译程序技术的僵局而开发的 A.( ) (1)(2) B.( ) (1)C.( ) (1)(2)(3) D.( ) (2)(3) 5.解释程序处理语言时 , 大多数采用的是_____方法。 A.( ) 源程序命令被逐个直接解释执行 B.( ) 先将源程序转化为中间代码 , 再解释执行 C.( ) 先将源程序解释转化为目标程序 , 再执行 D.( ) 以上方法都可以 6.编译过程中 , 语法分析器的任务就是_____。 (1) 分析单词是怎样构成的 (2) 分析单词串是如何构成语句和说明的 (3) 分析语句和说明是如何构成程序的 (4) 分析程序的结构 A.( ) (2)(3) B.( ) (2)(3)(4) C.( ) (1)(2)(3) D.( ) (1)(2)(3)(4) 7.编译程序是一种_____。 A. ( ) 汇编程序B.( ) 翻译程序 C.( ) 解释程序 D.( ) 目标程序 8.文法 G 所描述的语言是_____的集合。 A. ( ) 文法 G 的字母表 V 中所有符号组成的符号串 B.( ) 文法 G 的字母表 V 的闭包 V* 中的所有符号串 C.( ) 由文法的开始符号推出的所有终极符串 D. ( ) 由文法的开始符号推出的所有符号串 9.文法分为四种类型,即0型、1型、2型、3型。其中3型文法是_____。 A. ( ) 短语文法 B.( ) 正则文法 C.( ) 上下文有关文法 D.( ) 上下文无关文法 10.一个上下文无关文法 G 包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组 _____。 A.( ) 句子B.( ) 句型 C.( ) 单词 D.( ) 产生式 三、填空题(每空1分,共10分)

编译原理期末考试卷

2001年编译原理试题 1.(10分)处于/* 和 */之间的串构成注解,注解中间没有*/。画出接受这种注解的DFA的状态转换图。 2.(10分)为语言 L ={a m b n | 0 ≤ m ≤ 2n}(即a的个数不超过b的个数的两倍) 写一个LR(1)文法,不准超过6个产生式。(若超过6个产生式,不给分。若所写文法不是LR(1)文法,最多给5分。) 3.(10分)构造下面文法的LL(1)分析表。 D → TL T → int | real L → id R R → , id R | ε 4.(15分)就下面文法 S → ( L) | a L → L , S | S ?给出一个语法制导定义,它输出配对括号的个数。 ?给出一个翻译方案,它输出每个a的嵌套深度。 如句子(a, (a, a) ),第一小题的输出是2,第二小题的输出是1 2 2。 5.(10分)Pascal语言for语句的含义见教材第222页习题7.13。请为该语句设计一种合理的中间代码结构。你可以按第215页图7.17的方式或者第219页图7.19的方式写出你的设计,不需要写产生中间代码的语法制导定义。 6.(5分)一个C语言程序如下: func(i1,i2,i3) long i1,i2,i3; { long j1,j2,j3; printf("Addresses of i1,i2,i3 = %o,%o,%o\n",&i1,&i2,&i3); printf("Addresses of j1,j2,j3 = %o,%o,%o\n",&j1,&j2,&j3); } main() { long i1,i2,i3;

编译原理模拟试题六

《编译原理》模拟试题六 一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分) 1.设r和s分别是正规式,则有L(r|s)=L(r)L(s)。(×) 2.确定的自动机以及不确定的自动机都能正确地识别正规集。(√) 3.词法分析作为单独的一遍来处理较好。 (× ) 4.构造LR分析器的任务就是产生LR分析表。 (√) 5.规范归约和规范推导是互逆的两个过程。 (× ) 6.同心集的合并有可能产生新的“移进”/“归约”冲突。 (× ) 7.LR分析技术无法适用二义文法。 (× ) 8.树形表示和四元式不便于优化,而三元式和间接三元式则便于优化。 (×) 9.程序中的表达式语句在语义翻译时不需要回填技术。 (√) 10.对中间代码的优化依赖于具体的计算机。 (× ) 二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分) 1.编译程序绝大多数时间花在_____ 上。 A.( ) 出错处理 B.( ) 词法分析 C.( ) 目标代码生成D.( ) 表格管理 2.编译程序是对_____。 A.( ) 汇编程序的翻译 B.( ) 高级语言程序的解释执行 C.( ) 机器语言的执行D.( ) 高级语言的翻译

3.采用自上而下分析,必须_____。 A.( ) 消除左递归 B.( ) 消除右递归 C.( ) 消除回溯 D.( ) 提取公共左因子 4.在规范归约中,用_____来刻画可归约串。 A.( )直接短语B.( )句柄 C.( )最左素短语D.( )素短语 5.若a为终结符,则A->α ·aβ为_____项目。 A.( )归约B.( ) 移进C.( ) 接受D.( ) 待约 6.间接三元式表示法的优点为_____。 A.( ) 采用间接码表,便于优化处理B.( ) 节省存储空间,不便于表的修改 C.( ) 便于优化处理,节省存储空间 D.( ) 节省存储空间,不便于优化处理 7.基本块内的优化为_____。 A. ( ) 代码外提,删除归纳变量B.( ) 删除多余运算,删除无用赋 值 C.( ) 强度削弱,代码外提 D.( ) 循环展开,循环合并 8. 在目标代码生成阶段,符号表用_____。 A.( ) 目标代码生成B.( ) 语义检查 C.( ) 语法检查D.( ) 地址分配 9.若项目集Ik含有A->α·,则在状态k时,仅当面临的输入符号a∈FOLLOW(A)时,才采取“A->α ·”动作的一定是_____。

编译原理模拟试卷和答案

北京语言大学网络教育学院 《编译原理》模拟试卷一 注意: 1.试卷保密,考生不得将试卷带出考场或撕页,否则成绩作废。请监考老师负责监督。 2.请各位考生注意考试纪律,考试作弊全部成绩以零分计算。 3.本试卷满分100分,答题时间为90分钟。 4.本试卷分为试题卷和答题卷,所有答案必须答在答题卷上,答在试题卷上不给分。 一、【单项选择题】(本大题共10小题,每小题2分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在答题卷相应题号处。 1、一个编译程序中,包含词法分析、()、中间代码生成、代码优化、目标代码生成等五个部分。 [A] 语法分析[B] 文法分析[C] 语言分析[D] 解释分析 2、词法分析器用于识别()。 [A] 字符串[B] 语句[C] 单词[D] 标识符 3、语法分析器则可以发现源程序中的()。 [A] 语义错误[B] 语法和语义错误 [C] 错误并校正[D] 语法错误 4、下面关于解释程序的描述正确的是()。 (1) 解释程序的特点是处理程序时不产生目标代码。 (2) 解释程序适用于COBOL 和FORTRAN 语言。 (3) 解释程序是为打开编译程序技术的僵局而开发的。 [A] (1)(2)[B] (1)[C] (1)(2)(3)[D] (2)(3) 5、解释程序处理语言时, 大多数采用的是()方法。 [A] 源程序命令被逐个直接解释执行 [B] 先将源程序转化为中间代码, 再解释执行 [C] 先将源程序解释转化为目标程序, 再执行 [D] 以上方法都可以 6、编译过程中, 语法分析器的任务就是()。 (1) 分析单词是怎样构成的 (2) 分析单词串是如何构成语句和说明的 (3) 分析语句和说明是如何构成程序的 (4) 分析程序的结构 [A] (2)(3)[B] (2)(3)(4)[C] (1)(2)(3)[D] (1)(2)(3)(4) 7、编译程序是一种()。

编译原理试题汇总+编译原理期末试题(8套含标准答案+大题集)

编译原理考试题及答案汇总 一、选择 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/d 6.一个编译程序中,不仅包含词法分析,_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.编译过程中 , 语法分析器的任务就是__B___。 (1) 分析单词是怎样构成的 (2) 分析单词串是如何构成语句和说明的 (3) 分析语句和说明是如何构成程序的 (4) 分析程序的结构 A.( ) (2)(3) B.( ) (2)(3)(4)C.( ) (1)(2)(3) D.( ) (1)(2)(3)(4) 12.编译程序是一种___C__。 A. ( ) 汇编程序 B.( ) 翻译程序 C.( ) 解释程序 D.( ) 目标程序 13.文法 G 所描述的语言是_C____的集合。 A. ( ) 文法 G 的字母表 V 中所有符号组成的符号串 B.( ) 文法 G 的字母表 V 的闭包 V* 中的所有符号串 C.( ) 由文法的开始符号推出的所有终极符串 D. ( ) 由文法的开始符号推出的所有符号串 14.文法分为四种类型,即 0 型、1 型、2 型、3 型。其中 3 型文法是___B__。 A. ( ) 短语文法 B.( ) 正则文法 C.( ) 上下文有关文法 D.( ) 上下文无关文法15.一个上下文无关文法 G 包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组 __D___。 A.( ) 句子 B.( ) 句型 C.( ) 单词 D.( ) 产生式 16.通常一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目标代码生成等五个部分,还应包括_C____。

编译原理期末考试习题及答案知识分享

一、填空题|(每题4分,共20分) 1. 乔母斯基定义的3型文法(线性文法)产生式形式 A→Ba|a,或A→aB|a,A,B∈Vn, a,b∈Vt 。 2.语法分析程序的输入是单词符号,其输出是语法单位。 3 型为 B → .aB 的LR(0)项目被称为移进项目,型为 B → a.B 的LR(0) 项目被称为待约项目, 4.在属性文法中文法符号的两种属性分别为继承属性和综合属性。 5、运行时存贮管理方案有静态存储分配、动态存储分配和堆式存储分配和方案。 二.已知文法 G(S) (1) E → T | E+T (2) T → F | F*F (3) F →(E)| i (1)写出句型(T*F+i)的最右推到并画出语法树。(4分) (2)写出上述句型的短语,直接短语和句柄。(4分) 答:(1)最右推到(2分) E ==> T ==> F ==> (E) ==> (E+T) ==> (E+F) ==> (E+i) ==> (T+i) ==> (T*F+i) (2) 语法树(2分) (3)(4分) 短语:(T*F+i),T*F+i ,T*F , i 直接短语:T*F , i 句柄:T*F 三. 证明文法G(S) :S → SaS |ε是二义的。(6分) 答:句子aaa对应的两颗语法树为: 因此,文法是二义文法

四.给定正规文法G(S): (1) S → Sa | Ab |b (2) A → Sa 请构造与之等价的DFA。(6分) 答:对应的NFA为:(6分) 状态转换表: a b {F} Φ{S} {S} {S,A} Φ {S,A} {S,A} {S} 五. 构造识别正规语言b*a(bb*a)*b* 最小的DFA(要求写出求解过程)。(15分)答:(1)对应的NFA(5分) a b {0} {1,3} {0} {1,3} Φ{2,3} {2,3} {1,3} {2,3} (5分) 六. 已知文法G(S) : (1) S → ^ | a | (T) (2) T → T,S | S 试:(1)消除文法的左递归;(4分) (2)构造相应的first 和 follow 集合。(6分) 答:(1)消除文法的左递归后文法 G’(S)为: (1) S → ^ | a | (T) (2) T → ST’ | S (3) T’→ ,ST’ |ε(4分)

编译原理试题汇总

一、选择题(每个选择题 2 分,共 20 分) 1 .文法 G 产生的⑴ 的全体是该文法描述的语言。 A .句型 B. 终结符集 C. 非终结符集 D. 句子 2 .若文法 G 定义的语言是无限集,则文法必然是⑵ : A .递归的 B 前后文无关的 C 二义性的 D 无二义性的 3 . Chomsky 定义的四种形式语言文法中, 0 型文法又称为⑶ 文法; 1 型文法又称为⑷ 文法; 2 型语言可由⑸ 识别。 A .短语结构文法 B 前后文无关文法 C 前后文有关文法 D 正规文法 E 图灵机 F 有限自动机 G 下推自动机 4 .一个文法所描述的语言是⑹ ;描述一个语言的文法是⑺ 。 A .唯一的 B 不唯一的 C 可能唯一,好可能不唯一 5 .数组的内情向量中肯定不含有数组的⑻ 的信息 A.维数 B.类型 C.维上下界 D.各维的界差 6 .在下述的编译方法中,自底向上的方法有⑼ ,自顶向下的分析方法有⑽ 。 ①简单优先分析②算符优先分析③递归下降分析④预测分析技术⑤LR(K)分析 ⑥ SLR(k)分析⑦ LL(k)分析⑧LALR(K)分析 A.③④⑦ B. ③④⑧ C.①②⑧ D.③④⑤⑥⑦ E.①②⑤⑥⑦ F. ①②⑤⑥⑧ 二、简答题(每小题 5 分,共 20 分) 1 . LL ( 1 )分析法对文法有哪些要求? 2 .常见的存储分配策略有几种?它们都适合于什么性质的语言? 3 .常见循环优化都有哪些项目? 4 .什么是活动记录?它主要由哪些内容构成? 五、( 12 分)已给文法 G[S] :S → SaP | Sf | P P → qbP | q 将 G[S] 改造成 LL ( 1 )文法,并给出 LL ( 1 )分析表。 七、( 8 分)将下面的条件语句表示成逆波兰式和四元式序列: if a>b then x:=a+b*c else x:=b-a; 八、( 8 分)给定基本块: A:=3*5 B:=E+F C:=A+12 D:=E+F A:=D+12 C:=C+1 E:=E+F 假定出基本块后,只有 A 、 C 、 E 是活跃的,给出用 DAG 图完成优化后的代码序列。参考答案: 一、⑴ D ⑵ A ⑶ A ⑷ C ⑸ G. ⑹ A ⑺ B ⑻ A ⑼ F ⑽ A 二、 1 .对于 G 中的每个产生式A →γ 1 | γ 2 | … | γ m ,其各候选式均应满足:(1)不同的候选式不能推出以同一终结符号打头的符号串,即 FIRST( γ i ) ∩ FIRST( γ j )= φ(1 ≤ i ,j ≤ m ;i ≠ j )

编译原理模拟题

《编译原理》模拟题(补) 一.单项选择题 1.()是两类程序语言处理程序。 A. 高级语言程序和低级语言程序 B. 解释程序和编译程序 C. 编译程序和操作系统 D. 系统程序和使用程序 2. 编译程序前三个阶段完成的工作是()。 A. 词法分析、语法分析和代码优化 B. 代码生成、代码优化和词法分析 C. 词法分析、语法分析、语义分析和中间代码生成 D. 词法分析、语法分析和代码优化 3. 一个上下文无关文法G包括四个组成部分:一组终结符,一组非终结符,一个开始符号,以及一组()。 A. 字符串 B. 产生式 C. 非开始符号 D. 文法 4. 词法分析器的输出结果是()。 A. 单词的种别编码 B. 单词在符号表中的位置 C. 单词的种别编码和自身值 D. 单词自身值 5. 一个句型中称为句柄的是该句型的最左()。 A. 非终结符号 B. 短语 C. 句子 D. 直接短语 6. 高级语言编译程序常用的语法分析方法中,递归下降分析法属于()分析方法。 A. 自左向右 B. 自顶向下 C. 自底向上 D. 自右向左 7. 在通常的语法分析方法中,()特别适用于表达式的分析。 A. 算符优先分析法 B. LR分析法 C. 递归下降分析法 D. LL(1)分析法 8. 优化可生成_____的目标代码。 A. 运行时间较短 B. 占用存储空间较小 C. 运行时间短但占用内存空间大 D. 运行时间短且占用存储空间小 9.()是两类程序语言处理程序。 A. 系统程序和使用程序 B.编译程序和操作系统 C. 解释程序和编译程序 D.高级语言程序和低级语言程序 10. 经过编译所得到的目标程序是()。 A. 四元式序列 B. 间接三元式序列 C. 二元式序列 D. 机器语言程序或汇编语言程序 11. 程序的基本块是指()。 A. 一个子程序 B. 一个仅有一个入口和一个出口的语句 C. 一个没有嵌套的程序段 D. 一组顺序执行的程序段,仅有一个入口和一个出口 12. 一个上下文无关文法G包括四个组成部分:一组终结符,一组非终结符,一个开始符号,以及一组()。 A. 字符串 B. 产生式 C. 非开始符号 D. 文法 13. 文法G产生的()的全体是该文法描述的语言。 A. 句型 B. 终结符集 C. 非终结符集 D. 句子 14. 词法分析器用于识别()。 A. 字符串 B. 语句 C. 单词 D. 标识符 15. 常用的中间代码形式不含()。

编译原理考试试题1

编译原理 一、(5×6分)回答下列问题: 1.什么是S-属性文法?什么是L-属性文法?它们之间有什么关系? 2.什么是句柄?什么是素短语? 3.划分程序的基本块时,确定基本块的入口语句的条件是什么? 4.运行时的DISPLAY 表的内容是什么?它的作用是什么? 5.对下列四元式序列生成目标代码: A:=B*C D:=E+F G:=A+D H:=G*2 其中,H 是基本块出口的活跃变量, R0和R1是可用寄存器 二、(8分)设∑={0,1}上的正规集S 由倒数第二个字符为1的所有字符串组成,请给出该字集对应的正规式,并构造一个识别该正规集的DFA 。 三、(6分)写一个文法使其语言为L(G)={ a n b m a m b n | m,n ≥1}。 四、(8分)对于文法G(E): E →T|E+T T →F|T* F F →(E)|i 1. 写出句型(T*F+i)的最右推导并画出语法树。 2. 写出上述句型的短语,直接短语、句柄和素短语。 五、(12分)设文法G(S): ( |*)B B |B A A A |SiA S A →+→→ 1.构造各非终结符的FIRSTVT 和LASTVT 集合; 2.构造优先关系表和优先函数。 六、(9分)设某语言的do-while 语句的语法形式为 S → do S (1) While E 其语义解释为: 真 假 S (1)的代码 E 的代码

针对自下而上的语法分析器,按如下要求构造该语句的翻译模式: (1) 写出适合语法制导翻译的产生式; (2) 写出每个产生式对应的语义动作。 七、(8分)将语句if (A0) then while C>0 do C:=C+D; 翻译成四元式。 八、(10分) 设有基本块如下: T1:=S+R T2:= 3 T3:= 12/T2 T4:=S/R A:=T1-T4 T5:=S+R B:=T5 T6:=T5*T3 B:=T6 (1)画出DAG图; (2)设A,B是出基本块后的活跃变量,请给出优化后的四元式序列。 九、(9分) 设已构造出文法G(S): (1) S → BB (2) B → aB (3) B→ b 的LR分析表如下 ACTION GOTO 状态 a b # S B 0 s3 s4 1 2 1 acc 2 s6 s7 5 3 s3 s 4 8 4 r3 r3 5 r1 6 s6 s 7 9 7 r3 8 r2 r2 9 r2 假定输入串为abab,请给出LR分析过程(即按照步骤给出状态,符号,输入串的变化过程)。

编译原理模拟试卷及答案

模拟试题二 发表日期:2009年6月5日编辑:admin 阅读数:240 一、是非题(下列各题,你认为正确的,请在题干的括号内打“√”,错的打“×”。每题1分,共5分) 1、算符优先关系表不一定存在对应的优先函数。 2、数组元素的地址计算与数组的存储方式有关。 3、仅考虑一个基本块,不能确定一个赋值是否真是无用的。 4、每个文法都能改写为LL(1)文法。 5、对于数据空间的存贮分配,FORTRAN采用动态贮存分配策略。 二、填空题(每题2分,共20分) 1、从功能上说,程序语言的语句大体可分为_______语句和______语句两大类。 2、扫描器的任务是从________中识别出一个个_______。 3、所谓最右推导是指:_______。 4、语法分析最常用的两类方法是________和_________分析法。 5、一个上下文无关文法所含四个组成部分是_______________。 6、所谓语法制导翻译方法是_____________________。 7、符号表中的信息栏中登记了每个名字的有关的性质,如_________等等。 8、一个过程相应的DISPLAY表的内容为________。 9、常用的两种动态存贮分配办法是_____动态分配和_____动态分配。 10、产生式是用于定义_____的一种书写规则。 三、名词解释(每题2分,共10分) 1、遍 2、无环路有向图(DAG) 3、语法分析

4、短语 5、后缀式 四、简述题(每题4分,共24分) 1、考虑下面程序 ………… Var a:integer; Procedure S(X); Var X:integer; Begin a:=a+1; X:=a+X End; Begin a:=5; S(a); Print(a) End. 试问:若参数传递方式分别采取传名和传值时,程序执行后输出a的值是什么? 2、画出Pascal中实数(不带正负号,可带指数部分)的状态转换图。 3、写出表达式(a+b*c)/(a+b)-d的逆波兰表示及三元式序列。 4、已知文法G(S) S→a|∧|(T)

编译原理练习题答案[1]1

一、填空题: 1-01.编译程序的工作过程一般可以划分为词法分析,语法分析,语义分析,之间代码生成,代码优化等几个基本阶段,同时还会伴有表格处理和出错处理 . 1-02.若源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序 ,则其翻译程序称为编译程序. 1-03.编译方式与解释方式的根本区别在于是否生成目标代码 . 1-04.翻译程序是这样一种程序,它能够将用甲语言书写的程序转换成与其等价的用乙语言书写的程 序 . 1-05.对编译程序而言,输入数据是源程序 ,输出结果是目标程序 . 1-06.如果编译程序生成的目标程序是机器代码程序,则源程序的执行分为两大阶段: 编译阶段和运行阶段 .如果编译程序生成的目标程序是汇编语言程序,则源程序的执行分为三个阶段: 编译阶段 , 汇编阶段和运行阶段 . 1-07.若源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序,则其翻译程序称为编译程序。 1-08.一个典型的编译程序中,不仅包括词法分析、语法分析、中间代码生成、代码优化、目标代码生成等五个部分,还应包括表格处理和出错处理。其中,词法分析器用于识别单词。 1-09.编译方式与解释方式的根本区别为是否生成目标代码。 2-01.所谓最右推导是指:任何一步α β都是对α中最右非终结符进行替换的。 2-02.一个上下文无关文法所含四个组成部分是一组终结符号、一组非终结符号、一个开始符号、一组产生式。 2-03.产生式是用于定义语法成分的一种书写规则。 2-04.设G[S]是给定文法,则由文法G所定义的语言L(G)可描述为:L(G)={x│S x,x∈V T*} 。 2-05.设G是一个给定的文法,S是文法的开始符号,如果S x (其中x∈V*),则称x是文法的一个句型。 2-06.设G是一个给定的文法,S是文法的开始符号,如果S x(其中x∈V T*),则称x是文法的一个句子。 3-01.扫描器的任务是从源程序中识别出一个个单词符号。 4-01.语法分析最常用的两类方法是自上而下和自下而上分析法。 4-02.语法分析的任务是识别给定的终极符串是否为给定文法的句子。 4-03.递归下降法不允许任一非终极符是直接左递归的。 4-04.自顶向下的语法分析方法的关键是如何选择候选式的问题。 4-05.递归下降分析法是自顶向上分析方法。 4-06.自顶向下的语法分析方法的基本思想是:从文法的开始符号开始,根据给定的输入串并按照文法的产生式一步一步的向下进行直接推导,试图推导出文法的句子,使之与给定的输入串匹配。 5-01.自底向上的语法分析方法的基本思想是:从给定的终极符串开始,根据文法的规则一步一步的向上进行直接归约,试图归约到文法的开始符号。 5-02.自底向上的语法分析方法的基本思想是:从输入串入手,利用文法的产生式一步一步地向上进行直接归约,力求归约到文法的开始符号。

编译原理试题B及答案

编译原理试题B 得分一、单项选择题(每题1分,共20分) 1、对编译系统有关概念描述正确的是( B) A.目标程序只能是机器语言 B. 编译程序处理的对象是源语言 C.解释程序属于编译程序 D. 词法分析无法自动进行 2. 设有表达式a*b-c,将其中a*b识别为表达式的编译阶段是什么 (B) A.词法分析 B. 语法分析 C.语义分析 D. 代码生成 3. 下面不能用于对文法进行描述的是(A ) A.源语言 B. EBNF C.BNF D. 语法图 4. 设有文法G[S]: S→0S|1A|0,A→1|1S|0B,B→1A|0B,下列符号串中是该文法的句子的是 ()? A.1010001001101 B.0101001110010010 C.1101010011110111 D.1010011101101010 (可画出DFA验证) 5. 文法G[S]: S→aA|bC|a A→aS|bB B→aC|bA|b C→aB|bS ,则不是L(G)句子的是( B )100501001000500aba B. a.a babbA5006021004010aa aaba D. aabC.abb (画出DFA) 6. 哪个不是DFA的构成成分(B) A.有穷字母表 B. 初始状态集合 C.终止状态集合 D. 有限状态集合 7.词法分析器的输入是( B ) A.单词符号串 B.源程序 C.语法单位 D.目标程序 8.在词法分析阶段不能识别的是(C ) A.标识符 B. 运算符 C.四元式 D. 常数

9.设有一段C语言程序while(i&&++j)

{ c=2.19; j+=k; i++;经过词法分析后可以识别的单词个数是(B )} ,.19 B.20 C.21 D.23A ( B )10.自上而下语法分析的主要动作是 C.规约 D. 匹配A.移进 B. 推导 ( D )分析器的自称部分是11.下面不属于LL(1) 总控程序 B. LL(1)分析表A.LL(1).分析栈 D.源程序串C 设有文法G[S]为12.→aS|c,C→AD|b,DBS→AB|bC, A→ε|b,→ε|aD A )则FOLLOW(A)为(.{a,#} D.{#}A.{a,c,#} B.{c,#} C G[S]: 13.设有文法)FIRST(Ap)为( C Ap|Bq→,A→a|cA,B→b|dB ,则S 其他.{p,q} B. {b,d} C.{a,c} D. A )自下而上语法分析的主要分析动作是(D 14. D. 移进-规约A.推导 B. 规约 C.匹配 ( C ) 15.算法优先分析中,可规约串是 .最左素短语 D.素短语A.句柄 B.活前缀 C )( B →SaS|ε},S}16. 设有文法,该文法是.二义性文法 B 文法A.LL(1)C.SLR(1)文法 D.算法优先文法 17、中间代码生成时所以据的是(C ) A.语法规则 B.词法规则 C.语义规则 D.等价变换规则 18、给定文法G: E→E+T|T,T→T*F|F,F→i|(E) 则L(G)中的一个句子i+i+(i*i)*i的逆波兰表示为( C ) A.iii*i++ B.ii+iii**+ C.ii+ii*i*+ D.其他 19.在编译程序中与生成中间代码的目的无关的是(B ) A.便于目标代码优化 B.便于存储空间的组织 C.便于目标代码的移植 D.便于编译程序的移植 20.中间代码是介于源语言程序和什么之间的一种代码( D) A.源代码 B. 机器语言 C. 汇编语言 D. 目标代码 得分二.简答(每题3分,共12分) 1. 什么是解释程序? 解释程序也是一种翻译程序,它将源程序作为输入并执行之,即边解释边执行。 2. 词法分析器的主要任务是什么? 词法分析器的主要任务是逐步扫描和分解构成源程序的字符串,识别出一个一个的单词符号。 3.文法有哪几部分组成?

编译原理试题及答案(期末复习版).pdf

<编译原理>历年试题及答案 一.(每项选择 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/d 9.程序所需 的数据空间在程序运行前就可确定,称为____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^^*是文法的句型,指出该句型的短语、简单短语和句柄.

编译原理模拟试卷答案

模拟试卷答案 模拟试卷A 一、 二、 int real id , $ D D →TL D →TL T T →int T →real L L →id R R R →, id R R → ε 三、 (1)状态转换图如下: (2)合并同心项目集(I 4和I 11,I 5和I 12,I 7和I 13,I 8和I 10)后没有动作冲突。 *

四、语法制导的定义如下: S → E print(S.loop); E →while E1do E2 E.loop := max(E1.loop, E2.loop) +1; E →id := E E.loop := E1.loop; E → E1 + E2 E.loop := max(E1.loop, E2.loop); E →id E.loop := 0; E → (E1) E.loop := E1.loop; 五、程序流图 (1)计算各基本块的到达-定值集IN[B]。公式为: IN[B] = ∪ OUT[P] P∈P[B] OUT[B] = GEN[B] ∪ ( IN[B] - KILL[B] ) 基本块GEN[B] 位向量KILL[B] 位向量B1{ d1, d2 } 11000000 { d3, d4, d6 } 00110100 B2{ d3, d4 } 00110000 { d1, d2, d6 } 11000100 B3{ d6 } 00000100 { d1, d4 } 10010000 B4{ } 00000000 { } 00000000

(2)求各基本块中各变量引用点的ud 链: 假设在程序中某点u 引用了变量a ,则把能到达u 的a 的所有定值点,称为a 在引用点u 的引用-定值链(简称ud 链)。可以利用到达-定值信息来计算各个变量在任何引用点的ud 链。 由图9.6(1)的程序流图可知,I 的引用点是d3、d5和d6,J 的引用点是d3和d8。 B2中I 和J 的引用点d3前面没有对I 和J 的定值点,其ud 链在IN[B2]={ d1, d2, d3, d6 }中,所以I 在引用点d3的ud 链是{ d1, d6 };J 在引用点d3的ud 链是{ d2, d3 }。 在B2中I 的引用点d5前面有I 的定值点d4,且在d4定值后到达d5,所以I 在引用点d5的ud 链是{ d4 }。 B3中I 的引用点d6前面没有I 的定值点,其ud 链是IN[B3]中I 的所有定值点,所以是{ d4 }。 B4中J 的引用点d8前面没有对J 的定值点,其ud 链是IN[B4]中J 的所有定值点。已知IN[B4] = { d3, d4 },所以,J 的引用点d8的ud 链是{ d3 }。 模拟试卷B 一、该正规式描述的语言是,所有不含子串001的0和1的串。 二、 (1)先给出接受该文法活前缀的DFA 如下:

编译原理考试试卷

一、填空题(每空 2 分,共 30 分) 1、编译程序的整个过程可以从逻辑上划分为词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等几个阶段,另外还有两个重要的工 作是表格管理和出错处理 2、规范规约中的可归约串是句柄,算符优先分析中的可归约串是最左素短语。 3、语法分析方法主要可分为自顶向下和自底向上两大类。 4、 LR ( 0)文法的项目集中不会出现移进 -归约冲突和归约 -归约冲突。 5、数据空间的动存态储分配方式可分为栈式和堆式两种。 6、编译程序是指能将源语言程序翻译成目标语言程序的程序。 7、确定有穷自动机DFA 是NFA的一个特例。 8、表达式 (a+b)*c的逆波兰表示为ab+c*。 二、选择题(每题 2 分,共 20 分) 1、 L R 语法分析栈中存放的状态是识别B的 DFA 状态。 A 、前缀B、可归前缀C、项目 D 、句柄 2、D不可能是目标代码。 A 、汇编指令代码 B 、可重定位指令代码 C、绝对机器指令代码 D 、中间代码 3、一个控制流程图就是具有C的有向图 A 、唯一入口结点B、唯一出口结点C、唯一首结点 D 、唯一尾结点 4、设有文法G[S] : S→ b|bB B → bS ,则该文法所描述的语言是C。 A 、 L ( G)={b i|i≥ 0}B、 L (G) ={b 2i |i≥0} C、 L ( G)={b 2i+1|i≥ 0} D 、 L ( G)={b 2i+1|i ≥1} 5、把汇编语言程序翻译成机器可执行的目标程序的工作是由 B完成的。 A 、编译器 B 、汇编器C、解释器D、预处理器6、在目标代码生成阶段,符号表用于D。 A 、目标代码生成 B 、语义检查C、语法检查D、预处理器地址分配0 7、规范归约是指B。 A 、最左推导的逆过程 B 、最右推导的逆过程C、规范推导D、最左归约逆过程 8、使用A可以定义一个程序的意义。 A 、语义规则B、词法规则C、语法规则D、左结合规则 9、经过编译所得到的目标程序是D。 A 、三元式序列B、四元式序列C、间接三元式 D 、机器语言程序或汇编语言程序 10、在一个基本块内进行的代码优化是B。 A 、全局优化B、局部优化C、循环优化D、代码外提 三、简答题( 3 小题,共 30 分) 1、已知文法G[S]:S→Ac|aB A→ ab B→ bc 证明该文法具有二义性(本题 6 分) 证明:因为该文法的句型abc 存在如下两棵语法树: 所以,该文法具有二义性 一、填空题(每空 1分,共 20分) 1.编译过程一般分为、、中间代码生成、 和目标代码生成五个阶段。 2.语法分析最常用的两类方法是和分析法。 3.确定的有穷自动机是一个,通常表示为。

编译原理模拟题

《编译原理》模拟题(补)一.单项选择题 1.()是两类程序语言处理程序。 A. 高级语言程序和低级语言程序 B. 解释程序和编译程序 C. 编译程序和操作系统 D. 系统程序和应用程序 2. 编译程序前三个阶段完成的工作是()。 A. 词法分析、语法分析和代码优化 B. 代码生成、代码优化和词法分析 C. 词法分析、语法分析、语义分析和中间代码生成 D. 词法分析、语法分析和代码优化 3. 一个上下文无关文法G包括四个组成部分:一组终结符,一组非终结符,一个开始符号,以及一组()。 A. 字符串 B. 产生式 C. 非开始符号 D. 文法 4. 词法分析器的输出结果是()。 A. 单词的种别编码 B. 单词在符号表中的位置 C. 单词的种别编码和自身值 D. 单词自身值 5. 一个句型中称为句柄的是该句型的最左()。 A. 非终结符号 B. 短语 C. 句子 D. 直接短语 6. 高级语言编译程序常用的语法分析方法中,递归下降分析法属于()分析方法。 A. 自左向右 B. 自顶向下 C. 自底向上 D. 自右向左 7. 在通常的语法分析方法中,()特别适用于表达式的分析。 A. 算符优先分析法 B. LR分析法 C. 递归下降分析法 D. LL(1)分析法 8. 优化可生成_____的目标代码。 A. 运行时间较短 B. 占用存储空间较小 C. 运行时间短但占用内存空间大 D. 运行时间短且占用存储空间小 9.()是两类程序语言处理程序。 A. 系统程序和应用程序 B.编译程序和操作系统 C. 解释程序和编译程序 D.高级语言程序和低级语言程序 10. 经过编译所得到的目标程序是()。 A. 四元式序列 B. 间接三元式序列 C. 二元式序列 D. 机器语言程序或汇编语言程序 11. 程序的基本块是指()。 A. 一个子程序 B. 一个仅有一个入口和一个出口的语句 C. 一个没有嵌套的程序段 D. 一组顺序执行的程序段,仅有一个入口和一个出口 12. 一个上下文无关文法G包括四个组成部分:一组终结符,一组非终结符,一个开始符号,以及一组()。 A. 字符串 B. 产生式 C. 非开始符号 D. 文法 13. 文法G产生的()的全体是该文法描述的语言。 A. 句型 B. 终结符集 C. 非终结符集 D. 句子

第三编译原理模拟试卷

编译原理模拟试卷(三) 一、单项选择题%15 1、编译程序是对。 a.汇编程序的翻译b.高级语言程序的解释执行 c.机器语言的执行d.高级语言的翻译 2、语法分析应遵循。 a.语义规则b.语法规则 c.构词规则d.等价变换规则 3、设文法为:S→SA|A A→a|b 则对句子aba,下面是规范推导。 a. S?SA?SAA?AAA?aAA?abA?aba b. S?SA?SAA?AAA?AAa?Aba?aba c. S?SA?SAA?SAa?Sba?Aba?aba d. S?SA?Sa?SAa?Sba?Aba?aba 4、文法G:S→b|∧(T) T→T,S|S 则FIRSTVT(T) 。 a. {b,∧,(} b. {b,∧,)} c.{b,∧,(,,} d.{b,∧,),,} 5、产生正规语言的文法为。 6、一个 A 指明了在分析过程中的某时刻所能看到产生式多大一部分。 a.活前缀 b.前缀 c.项目 d.项目集 7、中间代码生成所依据的是C。 a.语法规则 b.词法规则 c.语义规则 d.等价变换规则 8、四元式之间的联系是通过 B 实现的。 a.指示器 b.临时变量 c.符号表 d.程序变量 9、后缀式ab+cd+/可用表达式 B 来表示。 a.a+b/c+d b.(a+b)/(c+d) c.a+b/(c+d) d.a+b+c/d 10、表达式(┓A∨B)∧(C∨D)的逆波兰表示为ERB 。 a. ┓AB∨∧CD∨ b. A┓B∨CD∨∧ c. AB∨┓CD∨∧ d. A┓B∨∧CD∨ 11、在编译时有传名功能的高级程序语言是。 a. Fortran b. Basic c. Pascal d. ALGOL 12、栈式动态分配与管理在过程返回时应做的工作有。 a. 保护SP b. 恢复SP c.保护TOP d. 恢复TOP 13、优化可生成DD 的目标代码。 a.运行时间较短b.占用存储空间较小 c.运行时间短但占用内存空间大d.运行时间短且占用存储空间小 14、下列 A 优化方法不是针对循优化进行的。 a.强度削弱b.删除归纳变量c.删除多余运算d.代码外提 15、基本块内的优化为 B 。 a.代码外提,删除归纳变量b.删除多余运算,删除无用赋值 c.强度削弱,代码外提d.循环展开,循环合并 二、多项选择题%16

相关文档
相关文档 最新文档