文档视界 最新最全的文档下载
当前位置:文档视界 › 北京科技大学编译原理试题

北京科技大学编译原理试题

北京科技大学编译原理试题
北京科技大学编译原理试题

北科大编译原理期末试题

一、选择题(本大题共20小题,每小题1分,共20分)

1、描述一个语言的文法是___________。

a、唯一的

b、不唯一的

c、个数有限的

2、汇编程序是将______翻译成______;编译程序是将_______翻译成__________。

a、汇编语言程序

b、机器语言程序

c、高级语言程序d汇编语言或机器语言程序

3、设有文法G[I]:

I→I0|I1|I a|Ic|a|b|c

下列符号串中是该文法的句子的有___________________。

①ab0 ②a0c01 ③aaa ④bc10

可选项有

a、①

b、②③④

c、③④

d、①②③④

4、生成非0开头的正偶数集的文法是______________。

a、Z::=ABC c、Z::=ABC|2|4|6|8

C::=0|2|4|6|8 C::=0|2|4|6|8

B::=BA|B0|εB::=BA|B0|0

A::=1|2|3|4|5|6|7|8|9 A::=1|2|3|4|5|6|7|8|9

b、Z::=ABC d、Z::=ABC|2|4|6|8

C::=0|2|4|6|8 C::=0|2|4|6|8

B::=BA|B0|0 B::=BA|B0|ε

A::=1|2|3|4|5|6|7|8|9 A::=1|2|3|4|5|6|7|8|9

5、一个上下文无关文法G包括四个组成部分依次为:一组_____、一个_____、一组_____、一组______。

a、字符串

b、字母数字串

c、产生式

d、结束符号

e、开始符号

f、文法

g、非终结符号

h、终结符号

6、现有前缀表示的表达式文法G1:

E::=-EE E::=-E E::=a|b|c

则文法的句子—a-bc的所有可能语法树有______棵。

a、1

b、2

c、3

d、4

7、下列文法__________二义文法

E::=EiT|T T::=T+F|iF|F F::=E*|(

可选项有:a、是b、不是c、无法判断。

8、语法分析的常用方法是_________:

①自顶向下②自底向上③自左向右④自右向左

可选项有:

a、①②③④

b、①②

c、③④

d、①②③

9、LR(K)文法是_________。

a、从左到右分析,共经过K步的一种编译方法。

b、从左到右分析,每次向前预测K步的一种编译方法。

c、从左到右分析,每次向貌似句柄的符号串后看K个输入符号的一种编译方法。

d、从左到右分析,每次走K步的一种编译方法。

10、素短语是指_______的短语。

①至少包含一个符号

②至少包含一个非终结符号

③至少包含一个终结符号

④除自身外不再包含其它终结符号

⑤除自身外不再包含其它非终结符号

⑥除自身外不再包含其它短语

⑦除自身外不再包含其它素短语

可选项有:

a、①④

b、①⑤

c、①⑥

d、②④

e、③⑤

f、③⑦

g、②⑦

11、文法的二义性和语言的二义性是两个____________概念。

a、不同

b、相同

c、无法判断

12、在编译中产生语法树是为了____________。

a、语法分析

b、语义分析

c、词法分析

d、产生目标代码

13、下述正规表达式中________与(a*+b)*(c+d)等价。

①a*(c+d)+b(c+d)

②a*(c+d)*+b(c+d)*

③a*(c+d)+b*(c+d)

④(a+b)*c+(a+b)*d

⑤(a*+b)*c+(a*+b)*d

可选项有:a、①b、②c、③d、④ e、⑤ f、④⑤ g、③④⑤

14、_______这样的语言,他们能被确定的有限自动机识别,但不能用正规表达式表

示:

a、存在

b、不存在

c、无法判定是否存在

15、LL(K)文法________二义性的。

a、都是

b、都不是

c、不一定都是

16、下面的文法是__________。S::=aAa|aBb|bAb|bBa A::=x B::=x

可选项有:a、LR(1)文法b、LALR(1)文法c、都不是d、a和b

17、编译过程中,比较常见的中间语言有___________。

①波兰表示

②逆波兰表示

③三元式

④四元式

⑤树形表示

可选项有:a、①③④b、②③④c、③④①⑤d、②③④⑤

18、-a-(b*c/(c-d)+(-b)*a)的逆波兰表示是___________。

a、abc*cd-b-a*+/--

b、a-bc*cd-b-a*+/-

c、a-bc*cd-/b-a*+-

d、a-bc*/cd-b-a*+-

19、在编译程序中安排中间代码生成的目的是_______________。

①便于进行存储空间的组织

②利于目标代码优化

③利于编译程序的移植

④利于目标代码的移植

⑤利于提高目标代码的质量

可选项有:

a、②④

b、①②③

c、③④①

d、②③④⑤

20、代码优化的主要目标是_____________。

①如何提高目标程序的运行速度

②如何减少目标程序运行所需的空间。

③如何协调①和②

④如何使生成的目标代码尽可能简短

可选项有:

a、②④

b、①②③

c、③④①

d、②③④

二、简答题:(每小题5分,共30分)

1、证明下面文法是二义性的。P::=PaP|PbP|cP|Pe|f

2、设一文法S→AB S→c A→bA A→a B→aSb B→c 对于句子bbaacb

写出其全部短语,直接短语和句柄。

3、求出下列文法所产生语言对应的正规式。

S::=aA A::=bA|aB|b B::=aA

4、表达式(a+b)*c/d-e*f分别表示三元式、四元式、逆波兰式序列

5、消除下列文法的左递归。

E::=T|EAT T::=F|TMF F::=(E)|i A::=+|- M::=*//

6、给出与下图的NFA等价的正规式。

c

三、问答题:

1、已知文法G S::=aBc|bAB A::=aAb|b B::=b|

构造预测分析表并给出输入串baabbb分析过程。(10分)

2、正规式((0*|1)(1*0))* (10分)

(1)构造该正规式所对应的NFA(画出状态转换图)。

(2)将所求的NFA确定化。(画出确定化的状态转换图)。

3、若有文法G(S)的产生式如下:S::=bASB|bA A::=dSa|b B::=cAa|c构造识别

所有项目集规范族的DFA。(15分)

(1)判断该文法是否是LR(0)文法,说明理由。

(2)判断该文法是否是SLR(1)文法,说明理由。

(3)判断该文法是否是LR(1)文法,说明理由。

(4)判断该文法是否是LALR(1)文法,说明理由。

4、设已给文法G: E::=E+T E::=T T::=T*F T::=F F::=(E) F::=i

构造此文法的算符优先矩阵。(15分)

《编译原理》模拟期末试题汇总 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分)

编译原理期末考试习题及答案

一、填空题|(每题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)

编译原理相关试题

《编译原理》考试试题 (所有答案必须写在答题纸上) (2006.12.25) 一、回答下列问题:(30分) 1.什么是S-属性文法?什么是L-属性文法?它们之间有什么关系? 解答: S-属性文法是只含有综合属性的属性文法。(2分) L-属性文法要求对于每个产生式A X1X2…Xn,其每个语义规则中的每个属性或者是综合属性,或者是Xj的一个继承属性,且该属性仅依赖于:(1)产生式Xj的左边符号X1,X2…Xj-1的属性; (2)A的继承属性。(2分) S-属性文法是L-属性文法的特例。(2分) 2.什么是句柄?什么是素短语? 一个句型的最左直接短语称为该句型的句柄。(3分)素短语是这样的一个短语,它至少包含一个终结符并且不包含更小的素短语。(3分) 3.划分程序的基本块时,确定基本块的入口语句的条件是什么? 解答: (1)程序第一个语句,或 (2)能由条件转移语句或无条件转移语句转移到的语句,或 (3)紧跟在条件转移语句后面的语句。 4.(6分)运行时的DISPLAY表的内容是什么?它的作用是什么? 答:DISPLAY表是嵌套层次显示表。每当进入一个过程后,在建立它的活动记录区的同时建立一张嵌套层次显示表diaplay.假定现在进入的过程层次为i,则它的diaplay表含有i+1个单元,自顶向下每个单元依次存放着现行层、直接外层、…、直至最外层(主程序,0层)等每层过程的最新活动记录的起始地址。通过DISPLAY表可以访问其外层过程的变量。 三、写一个文法使其语言为L(G)={ anbmambn | m,n≥1}。(6分) 答:文法G(S): S → aSb | B B → bBa | ba 四、对于文法G(E): (8分) E→T|E+T T→F|T*F

北交《编译原理》在线作业一答案

北交《编译原理》在线作业一-0009 试卷总分:100 得分:100 一、单选题(共25 道试题,共50 分) 1.下面哪个文法是左递归的( )。 A.T→F*T B.E→a C.E→E+T|T D.E→(E) 答案:C 2.文法E→(E)产生的语言是( )。 A.空集 B.(E) C.() D.((((E)))) 答案:A 3.LR(1)文法都是( )。 A.无二义性但可能是左递归 B.无二义性且无左递归 C.可能有二义性但无左递归 D.可以既有二义性又有左递归 答案:A 4.语义分析与中间代码产生所依循的是( )。 A.语言的语义规则 B.正规式 C.有限自动机 D.上下文无关文法 答案:A 5.文法G的一棵语法树叶结点的自左至右排列是G的一个( )。 A.素短语 B.句柄 C.句子 D.句型 答案:D 6.1型文法也称为( )。 A.短语文法 B.左性性文法 C.右线性文法 D.上下文有关文法 答案:D

7.下面哪个文法具有二义性( )。 A.E→a B.E→E+T|T C.E→(E) D.A→AA | (A) | 答案:D 8.( )是指源程序中不符合语义规则的错误,这些错误一般在语义分析时能检测出来。 A.语法错误 B.语义错误 C.短语错误 D.短句错误 答案:B 9.若一个文法是递归的,则它所产生的句子个数( )。 A.根据具体情况而定 B.是有限个的 C.必定是无穷的 D.不确定 答案:A 10.若文法G定义的语言是无限集,则文法必然是( )。 A.递归文法 B.正规文法 C.二义性文法 D.上下文无关文法 答案:A 11.优化所依循的原则是( )。 A.语言的语义规则 B.程序的等价变换规则 C.正规式 D.上下文无关文法 答案:B 12.有限自动机可以有( )个初始状态。 A.多个 B.两个 C.三个 D.一个 答案:D 13.编译程序中语法分析器接收以( )为单位的输入。

最新编译原理试题汇总+编译原理期末试题(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.( ) 产生式

编译原理复习题2017(含试卷)

* 编译原理复习题 一.简答题: 1) 什么是句子? 什么是语言? 解答:句子——设G 是一个给定的文法,S 是文法的开始符号,如果S x (其中x ∈V T * ),则称x 是文法的一个句子。 语言——语言是句子的集合。 或——设G[S]是给定文法,则由文法G 所定义的语言L(G)可描述为:L(G)={x │ S x,x ∈V T * } 。 2) DFA 与NFA 有何区别 ? 解答:DFA 与NFA 的区别表现为两个方面:一是NFA 可以有若干个开始状态,而DFA 仅只有一个 开始状态。另一方面,DFA 的映象M 是从K ×∑到K ,而NFA 的映象M 是从K ×∑到K 的子集,即映象M 将产生一个状态集合(可能为空集),而不是单个状态。 3) 自顶向下的语法分析方法的基本思想是什么? 解答:从文法的开始符号开始,根据给定的输入串并按照文法的产生式一步一步的向下进行直接 推导,试图推导出文法的句子,使之与给定的输入串匹配。 4) 自底向上的语法分析方法的基本思想是什么? 解答:从给定的输入串(终结符串)开始,根据文法的规则一步一步的向上进行直接归约,试图 归约到文法的开始符号。 5) 一个上下文无关文法G 包括哪四个组成部分? 解答:一组非终结符号,一组终结符号,一个开始符号,以及一组产生式。 6) 在自底向上的语法分析方法中,分析的关键是什么?

解答:关键是寻找句柄。 7)在自顶向下的语法分析方法中,分析的关键是什么? 解答:关键是选择候选式。 8)什么是属性文法? 答:是在上下文无关文法的基础上,为每个文法符号(含终结符和非终结符)配备若干个属 性值,对文法的每个产生式都配备了一组属性计算规则(称为语义规则)。在语法分析过 程中,完成语义规则所描述的动作,从而实现语义处理。 一个属性文法形式的定义为一个三元组AG,AG=(G,V,E)。 其中G为一个上下文无关文法;V为属性的有穷集;E为一组语义规则。 9)语法制导翻译 语法制导翻译:定义翻译所必须的语义属性和语义规则,一般不涉及计算顺序。 语法制导翻译(Syntax-Directed Translations): –一个句子的语义翻译过程与语法分析过程同时进行。 在文法中,文法符号有明确的意义,文法符号之间有确定的语义关系。属性描述语义信息, 语义规则描述属性间的的关系,将语义规则与语法规则相结合,在语法分析的过程中计算语义 属性值。 10)词法分析的主要任务是什么? 解答:词法分析器的任务是对构成源程序的字符串从左到右逐个字符逐个字符地进行扫 描,依次把它们识别为一个一个具有独立意义的单词,并确定其属性,再转换为长度统一的属 11)图示运行时存储空间的划分(分为哪几个区)。 解答: 一般分为静态区和动态区: 程序代码区、静态数据区、栈区和堆区 12)常用的中间语言种类有哪几种? 解答: 常用的中间语言种类有逆波兰表示、三元式、四元式和树形表示。 13)文法G所描述的语言是什么的集合? 解答:是由文法的开始符号推出的所有终结符串的集合。或说是句子的集合。 14)乔姆斯基把文法分为四种类型,即0型、1型、2型、3型。其中2型文法叫什么? 解答: 2型文法叫上下文无关文法。 15)常见的动态存贮分配策略有哪两种? 解答:常见的两种动态存贮分配策略是栈式动态分配策略和堆式动态分配策略。 16)语法分析的任务是什么?

编译原理试题(卷)汇总-编译原理期末试题(卷)(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____。

编译原理期末考试题目及答案

一、填空题(每空2分,共20分) 1.编译程序首先要识别出源程序中每个单词,然后再分析每个句子并翻译其意义。 2.编译器常用的语法分析方法有自底向上和自顶向下两种。 3.通常把编译过程分为分析前端与综合后端两大阶段。词法、语法和语义分析是对源程序的分析,中间代码生成、代码优化与目标代码的生成则是对源程序的综合。 4.程序设计语言的发展带来了日渐多变的运行时存储管理方案,主要分为两大类,即静态存储分配方案和动态存储分配方案。 5.对编译程序而言,输入数据是源程序,输出结果是目标程序。 1.计算机执行用高级语言编写的程序主要有两种途径:解释和编译。 2.扫描器是词法分析器,它接受输入的源程序,对源程序进行词法分析并识别出一个个单词符号,其输出结果是单词符号,供语法分析器使用。 3.自下而上分析法采用移进、归约、错误处理、接受等四种操作。 4.一个LL(1)分析程序需要用到一张分析表和符号栈。 5.后缀式abc-/所代表的表达式是a/(b-c)。 二、单项选择题(每小题2分,共20分) 1.词法分析器的输出结果是__C。 A.单词的种别编码B.单词在符号表中的位置 C.单词的种别编码和自身值D.单词自身值 2.正规式M 1 和M 2 等价是指__C_。 A.M1和M2的状态数相等 B.M1和M2的有向边条数相等 C.M1和M2所识别的语言集相等D.M1和M2状态数和有向边条数相等 3.文法G:S→xSx|y所识别的语言是_C____。 A.xyx B.(xyx)* C.xnyxn(n≥0) D.x*yx* 4.如果文法G是无二义的,则它的任何句子α_A____。 A.最左推导和最右推导对应的语法树必定相同B.最左推导和最右推导对应的语法树可能不同 C.最左推导和最右推导必定相同D.可能存在两个不同的最左推导,但它们对应的语法树相同5.构造编译程序应掌握____D__。 A.源程序B.目标语言C.编译方法D.以上三项都是 6.四元式之间的联系是通过__B___实现的。 A.指示器B.临时变量C.符号表D.程序变量 7.表达式(┐A∨B)∧(C∨D)的逆波兰表示为__B___。 A.┐AB∨∧CD∨B.A┐B∨CD∨∧ C.AB∨┐CD∨∧D.A┐B∨∧CD∨ 8. 优化可生成__D___的目标代码。 A.运行时间较短 B.占用存储空间较小 C.运行时间短但占用内存空间大D.运行时间短且占用存储空间小 9.下列___C___优化方法不是针对循环优化进行的。 A. 强度削弱B.删除归纳变量C.删除多余运算D.代码外提 10.编译程序使用_B_区别标识符的作用域。 A. 说明标识符的过程或函数名B.说明标识符的过程或函数的静态层次 C.说明标识符的过程或函数的动态层次 D. 标识符的行号 三、判断题(对的打√,错的打×,每小题1分,共10分) 2.一个有限状态自动机中,有且仅有一个唯一的终态。x

编译原理 基础试题

1.计算机高级语言翻译成低级语言只有解释一种方式。(×) 2.在编译中进行语法检查的目的是为了发现程序中所有错误。(×) 4.正则文法其产生式为A->a ,A->Bb, A,B∈VN ,a 、b ∈VT 。(×) 5.每个文法都能改写为LL(1) 文法。(√) 6.递归下降法允许任一非终极符是直接左递归的。(√) 7.算符优先关系表不一定存在对应的优先函数。(×) 8.自底而上语法分析方法的主要问题是候选式的选择。(×) 9.LR 法是自顶向下语法分析方法。(×) 10.简单优先文法允许任意两个产生式具有相同右部。(×) 1.设r和s分别是正规式,则有L(r|s)=L(r)L(s)。(×) 2.确定的自动机以及不确定的自动机都能正确地识别正规集。(√) 3.词法分析作为单独的一遍来处理较好。(×) 4.构造LR分析器的任务就是产生LR分析表。(√) 5.规范归约和规范推导是互逆的两个过程。(×) 6.同心集的合并有可能产生新的“移进”/“归约”冲突。(×) 7.LR分析技术无法适用二义文法。(×) 8.树形表示和四元式不便于优化,而三元式和间接三元式则便于优化。(×) 9.程序中的表达式语句在语义翻译时不需要回填技术。(√) 10.对中间代码的优化依赖于具体的计算机。(×) 1.编译程序是对高级语言程序的解释执行。(×) 2.一个有限状态自动机中,有且仅有一个唯一的终态。(×) 3.一个算符优先文法可能不存在算符优先函数与之对应。(√) 4.语法分析时必须先消除文法中的左递归。(×) 5.LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。(√) 6.逆波兰表示法表示表达式时无须使用括号。(√) 7.静态数组的存储空间可以在编译时确定。(×) 8.进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。(×) 9.两个正规集相等的必要条件是他们对应的正规式等价。(×) 10.一个语义子程序描述了一个文法所对应的翻译工作。(×) 1.一个LL(l)文法一定是无二义的。(×) 2.正规文法产生的语言都可以用上下文无关文法来描述。(×) 3.一张转换图只包含有限个状态,其中有一个被认为是初态,最多只有一个终态。(√) 4.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。(×) 5.逆波兰法表示的表达式亦称前缀式。(√) 6.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是二义的。(√) 8.数组元素的地址计算与数组的存储方式有关。(×) 10.对于数据空间的存贮分配,FORTRAN 采用动态贮存分配策略。(×) 2.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。(×) 3.递归下降分析法是自顶向上分析方法。(√) 4.产生式是用于定义词法成分的一种书写规则。(×) 5.LR 法是自顶向下语法分析方法。(√) 6.在SLR (1 )分析法的名称中,S的含义是简单的。(√) 7.综合属性是用于“自上而下”传递信息。(×) 8.符号表中的信息栏中登记了每个名字的属性和特征等有关信息,如类型、种属、所占单元大小、地址等等。(×) 9.程序语言的语言处理程序是一种应用软件。(×) 10.解释程序适用于COBOL 和FORTRAN 语言。(×) 1.“用高级语言书写的源程序都必须通过编译,产生目标代码后才能投入运行”这种说法。(×) 2.若一个句型中出现了某产生式的右部,则此右部一定是该句型的句柄。(×) 3.一个句型的句柄一定是文法某产生式的右部。(√) 4.在程序中标识符的出现仅为使用性的。(×) 5.仅考虑一个基本块,不能确定一个赋值是否真是无用的。(√) 6.削减运算强度破坏了临时变量在一基本块内仅被定义一次的特性。(√) 7.在中间代码优化中循环上的优化主要有不变表达式外提和削减运算强度。(×) 9.数组元素的地址计算与数组的存储方式有关。(×) 10.编译程序与具体的机器有关,与具体的语言无关。(×) 1.通常一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目标代码生成等五个部分,还应包括_C____。 A.( ) 模拟执行器B.( ) 解释器 C.( ) 表格处理和出错处理D.( ) 符号执行器 2.文法G[N]= ({b} ,{N ,B} ,N ,{N→b│bB ,B →bN} ),该文法所描述的语言是 C A.( ) L(G[N])={bi│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} 3.一个句型中的最左____B_称为该句型的句柄。 A.( ) 短语B.() 简单短语C.( ) 素短语D.( ) 终结符号 4.设G 是一个给定的文法,S 是文法的开始符号,如果S->x( 其中x∈V*), 则称x 是文法G 的一个__B___。 A.( ) 候选式B.( ) 句型C.( ) 单词D.( ) 产生式 5.文法G[E] : E→T∣E +T T→F∣T ﹡F F→a∣(E ) 该文法句型 E + F ﹡(E +T) 的简单短语是下列符号串中的__B___。 ①( E +T )②E +T ③F ④ F ﹡(E +T)

北京科技大学编译原理实验报告

编译原理实验报告 学院: 计算机与通信工程学院专业: 计算机科学与技术 班级: 学号: 姓名: 实验成绩:

词法分析 一、实验目的 设计、编制并调试一个词法分析程序,加深对词法分析原理的理解。 二、实验要求 2.1 待分析的简单的词法 (1)关键字: begin if then while do end 所有的关键字都是小写。 (2)运算符和界符 := + - * / < <= <> > >= = ; ( ) # (3)其他单词是标识符(ID)和整型常数(SUM),通过以下正规式定义: ID = letter (letter | digit)* NUM = digit digit* (4)空格有空白、制表符和换行符组成。空格一般用来分隔ID、SUM、运算符、界符和关键字,词法分析阶段通常被忽略。 2.2 各种单词符号对应的种别码: 输入:所给文法的源程序字符串。 输出:二元组(syn,token或sum)构成的序列。 其中:syn为单词种别码; token为存放的单词自身字符串; sum为整型常数。 例如:对源程序begin x:=9: if x>9 then x:=2*x+1/3; end #的源文件,经过词法分析后输出如下序列: (1,begin)(10,x)(18,:=)(11,9)(26,;)(2,if)…… 三、词法分析程序的算法思想: 算法的基本任务是从字符串表示的源程序中识别出具有独立意义的单词符号,其基本思想是根据扫描到单词符号的第一个字符的种类,拼出相应的单词符号。 3.1 主程序示意图:

3.2词法分析程序流程图: 四、词法分析程序的C++语言程序源代码: #include"stdio.h" #include"stdlib.h" #include"string.h" #define _KEY_WORD_END "waiting for your expanding" typedef struct 开始 变量初始化 是否文件结束? 返回 拼数 Syn=11 返回 拼字符串 是否是关键字? Syn 为对应关键字的单词种别码 Syn=10 给不同的符号相同的 Syn 值 报错 是 否 数字 字母 是 否 运算符, 界符等 其他

编译原理试题及答案3

编译原理复习题 一、填空题: 1、编译方式与解释方式的根本区别在于(是否生成目标代码)。 2、对编译程序而言,输入数据是(源程序),输出结果是(目标程序)。 3、如果编译程序生成的目标程序是机器代码程序,则源程序的执行分为两大阶段:(编译阶段)和(运行阶段)。 4、如果编译程序生成的目标程序是汇编语言程序,则源程序的执行分成三个阶段:(编译阶段)、(汇编阶段)和(运行阶段)。 5、自顶向下语法分析方法会遇到的主要问题有(回溯)和((左递归带来的)无限循环)。 6、LL(k)分析法中,第一个L的含义是(从左到右进行分析),第二个L的含义是(每次进行最左推导),“k”的含义是(向输入串中查看K个输入符号)。 7、LL(1)分析法中,第一个L的含义是(从左到右进行分析),第二个L的含义是(每次进行最左推导),“1”的含义是(向输入串中查看1个输入符号)。 8、自顶向下语法分析方法的基本思想是:从(识别符号)出发,不断建立(直接推导),试图构造一个推导序列,最终由它推导出与输入符号相同的(符号串)。 9、自底向上语法分析方法的基本思想是:从待输入的符号串开始,利用文法的规则步步向上进行(直接归约),试图(归约)到文法的(识别符号|开始符号)。 10、LR(0)分析法的名字中,“L”的含义是(从左到右进行分析),“R”的含义是(采用最右推导的逆过程---最左归约),“0”的含义是(向貌似句柄的符号串后查看0个输入符号)。 11、LR(1)分析法的名字中,“L”的含义是(从左到右进行分析),“R”的含义是(采用最右推导的逆过程---最左归约),“1”的含义是(向貌似句柄的符号串后查看1个输入符号)。 12、SLR(1)分析法的名字中,“S”的含义是(简单的),“L”的含义是(从左到右进行分析),“R”的含义是(采用最右推导的逆过程---最左归约),“1”的含义是(向貌似句柄的符号串后查看1个输入符号)。 13、在编译过程中,常见的中间语言形式有(逆波兰表示)、(三元式)、(四元式)和(树形表示)。 14、在编译程序中安排中间代码生成的目的是(便于代码优化)和(便于目标程序的移植)。 15、表达式-a+b*(-c+d)的逆波兰表示为(a-bc-d+*+ )。 16、表达式a+b*(c+d/e)的逆波兰表示为(abcde/+*+ )。 17、表达式a:=a+b*c↑(d/e)/f的逆波兰表示为(aabcde/↑*f/+:= )。 18、文法符号的属性有(继承属性)和(综合属性)两种。 19、一个文法符号的继承属性是通过语法树中它的(兄弟结点与父)结点的相应文法符号的属性来计算的。 20、一个文法符号的综合属性是通过语法树中它的(子)结点的属性来计算的。

编译原理试题及答案(期末复习版).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^^*是文法的句型,指出该句型的短语、简单短语和句柄.

北京理工大学软件学院编译原理第一次实验作业

试验1:PL/0编译程序跟踪与分析阅读第10章PL/0编译程序并完成: P304 —10.1 ,10.2,10.3 ,10.4。(PL/0源程序放在在网络教室)

试验2:词法分析试验二选一 (一)Java语言词法分析器的设计与实现 一.实验目的 1.强化对系统软件综合工程实现能力、规划能力的训练;2.加强对词法分析原理、方法和基本实现技术的理解;二.实验内容 用C语言(或C++ )作为宿主语言完成: Java语言词法分析器的设计和实现 其中具体要求: 1.使用DFA实现词法分析器的设计; 2.实现对Java源程序中注释的过滤; 3.利用两对半缓冲区从文件中逐一读取单词; 4.词法分析结果属性字流存放在独立文件(文件名: scanner_output)中; 5.具有报告词法错误和出错位置(源程序行号和该行字符)的 功能; 注:附Java语言词法规则(附件一); 附Java语言词法分析器的属性字设计(附件二) 三.实验验收与评分要求 1.编写Java语言词法分析器的源程序并调试通过; 2.通过测试程序的验收 (测试程序名称:Test-Lexcial); 3. 提交简明扼要的书面实验报告。内容包括:FA设计; 源程序主要函数功能;主要数据结构设计。

附件一 JA V A语言词法规则 关键字: abstract boolean break byte case catch char class const continue default do double else extends false final finally float for goto if implements import instanceof int interface long native new null package private protected public return short static super switch synchronized this throw throws transient true try void volatile while 标识符: 字母或美元符号“$”或下划线开头,连接字母或美元符号“$”或下划线或数字字符的串。 常量: 整型常量:123, 0, -456, 0123 , 0x123, -0X12,123L 实型常量: 1.23, 0.123, .123, 123., 123.0, 123e3, 123E3, 12.3F 布尔常量:true、false 字符串常量:"This is a constant string."。 字符常量:‘ a’ , 转义字符描述 \ddd 1到3位8进制数据所表示的字符(ddd) \uxxxx 1到4位16进制数所表示的字符(xxxx) \' 单引号字符 \\ 反斜杠字符 \r 回车 \n 换行 \f 走纸换页 \t 横向跳格 \b 退格 界限符:

编译原理试题汇总

一、选择题(每个选择题 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.将编译程序分成若干个“遍”是为了( 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 .xyx B .(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+T B .P C .P+T+i D .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 )优先函数。 A .有一个 B .没有 C .有若干个 D .可能有若干个 20.采用自上而下分析,必须( A ) A .消除左递归 B .消除右递归

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