编译原理期中考试

合集下载

编译原理期中考试试卷.doc

编译原理期中考试试卷.doc

编译原理期中考试试卷一、(10分)解释下列术语及概念。

1、字母表:符号的非空有限集合2、串:符号的又穷序列,句子:属于语言的串3、字母表的闭包:字母表上的一切符号串的集合4、编译程序:可以阅读以某一种语言(源语言)编写的程序,并把该程序翻译成为一个等价的、用另一种语言(目标语言)编写的程序。

二义性:若对于一个文法的某一句子存在两棵不同的语法树,则该文法是二义性文法二、(5分)编译程序有那些主要成分构成?各自的主要功能是什么编译程序的主要成分构成:词法分析程序,语法分析程序,语义分析程序,中间代码生成程序,代码优化程序、目标代码生成程序、表格管理程序及出错处理程序。

词法分析程序:从左到右扫描漏§序,识别单词及其有关属性;语法分析程序:分析源程序的结构判别它是否为相应程序设计语言中的一个合法程序:语义分析程序:审查源程序有无语义错误,为代码生成阶段收集类型信息;中间代码生成程序:将源程序变成一种内部表示形式;代码优化程序:对前阶段产生的中间代码进行变换或进行改造,使生成的目标代码更为高效目标代码生成程序:把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码;表格管理程序:保存编译过程中的各种信息;出错处理程序:若编译过程中发现源程序存在错误,则报告错误的性质和错误发生的地点,有些还可以自动校正错误。

三、(5分)什么是解释程序?它与编译程序的主要不同是什么?解释程序接受某个语言的程序并立即运行这个源程序。

它的工作模式是一个个的获取、分析并执行源程序语句,一旦第一个语句分析结束,源程序便开始运行并且生成结果,它特别适合程序员交互方式的工作情况。

而编译程序是一个语言处理程序,它把一个高级语言程序翻译成某个机器的汇编或二进制代码程序,这个二进制代码程序再机器上运行以生成结果。

它们的主要不同在于:解释程序是边解释边执行,解释程序运行结束即可得到该程序的运行结果,而编译程序只是把源程序翻译成汇编或者二进制程序,这个程序再执行才能得到程序的运行结果(当然还有其他不同,比如存储缈只方式不同)四、(10 分)文法G=({A, B, S}, (a, b, c), P, S)其中P 为:S-Ac|aBA—abB~*bc写出G[S]所表示的语言。

《编译原理》考试试题及答案(汇总)

《编译原理》考试试题及答案(汇总)

《编译原理》考试试题及答案(汇总)一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分)1.编译程序是对高级语言程序的解释执行。

(× )2.一个有限状态自动机中,有且仅有一个唯一的终态。

(×)3.一个算符优先文法可能不存在算符优先函数与之对应。

(√ )4.语法分析时必须先消除文法中的左递归。

(×)5.分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。

(√)6.逆波兰表示法表示表达式时无须使用括号。

(√ )7.静态数组的存储空间可以在编译时确定。

(×)8.进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。

(×)9.两个正规集相等的必要条件是他们对应的正规式等价。

(× )10.一个语义子程序描述了一个文法所对应的翻译工作。

(×)二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分)1.词法分析器的输出结果是。

A.( ) 单词的种别编码B.( ) 单词在符号表中的位置C.( ) 单词的种别编码和自身值D.( ) 单词自身值2.正规式 M 1 和 M 2 等价是指。

A.( ) M1和M2的状态数相等 B.( ) M1和M2的有向边条数相等C.( ) M1和M2所识别的语言集相等D.( ) M1和M2状态数和有向边条数相等3.文法G:S→所识别的语言是。

A.( ) B.( ) ()* C.( ) (n≥0) D.( ) x**4.如果文法G是无二义的,则它的任何句子α。

A.( )最左推导和最右推导对应的语法树必定相同B.( ) 最左推导和最右推导对应的语法树可能不同C.( ) 最左推导和最右推导必定相同D.( )可能存在两个不同的最左推导,但它们对应的语法树相同5.构造编译程序应掌握。

A.( )源程序B.( ) 目标语言C.( ) 编译方法 D.( ) 以上三项都是6.四元式之间的联系是通过实现的。

编译原理考试题

编译原理考试题

编译原理考试题一、选择题。

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. 请分析该编译器的设计思路和实现方法,并说明其优缺点。

编译原理期中练习及答案

编译原理期中练习及答案
a
b
e
i
t
$
S─>a
S─>iCtSS'
S'
12
13
14
15
C─>b
《12》《13》《14》《15》A)空白
B)S'─>εC)S'─>eSD)S─>iCtSS'
七.对于下图所示的NFA,16是与它等价的一个DFA。
《16》A)
B)
C)
D)
八.对于文法G[S]
S─>a│^│(T)
T─>T,S│S
《17》《18》《19》《20》
《7》A)* B)L C)*L= D)*L=i
《8》A)S B)L C)= D)i
《9》A)* B)*L C)*L=i D)L
《10》《11》A)*L B)*பைடு நூலகம்C)L D)i
六.对于文法G[S]
S─>iCtSS'│a
S'─>eS│ε
C─>b
在坚持把e和最近的t相结合的原则指导下,将这个二义文法的LL(1)分析表计算如下(空白表示出错):
《3》《4》A)输入带中已由读写头读入的字符串与下推栈中的字符串B)输入带中尚未由读写头读入的字符串与下推栈中的字符串C)下推栈中的字符串与输入带中已由读写头读入的字符串D)下推栈中的字符串与输入带中尚未由读写头读入的字符串
三.词法分析器引入双缓冲的目的是5。
《5》A)加快读单词符号速度B)保证长单词也能装入缓冲C)减少缓冲空间D)保证所读单词符号一定在缓冲中
四.在构造LR(1)文法的NFA时,若有产生式
B─>γ,则从项目[A─>α.Bβ,a]出发,画一条读入ξ的弧到项目[B─>.γ,b],其中b =6。

编译原理期中考试

编译原理期中考试

C -> C ; D | D D -> L : T L -> L , id | id T -> int | real (1) 改写 改写G[C],使之适合自上而下分析. ,使之适合自上而下分析. (2) 为改写后的文法构造一个 (1)预测分析表. 为改写后的文法构造一个LL( )预测分析表. (3) 给出串: id : int ; id , id : real 的分析过程. 给出串: 的分析过程. 注意: 作为一个符号处理. 注意:int ,id ,real 作为一个符号处理. :(3) 答:( ) C DC' C' ;DC'| D -> L : T L idL' L' ,idL'| T int|real 过程:压入1个 输入为: 过程:压入 个C, 输入为:id:int; id,id:real 产生式 1. 展开 C 展开: C DC' 展开 DC' id:int;id,id:real D L:T 展开 L:TC' id:int;id,id:real L idL' 展开 idL':TC' id:int;id,id:real 匹配 L':TC' :int;id,id:real L' 查表(select(L' )={:}),展开 查表( ) 展开 :TC' :int;id,id:real 匹配 TC' TC int;id,id:real T int 查表( int)={int}),展开 查表(select(T int)={int}),展开 intC' int:id,id:real 匹配 C' ;id,id:real C' ;DC' 查表(select(C' ;DC')={;}),展开 查表( 展开 ;DC' ;id,id:real 匹配 DC' id,id:real D L:T 展开 L:TC' id,id:real L IdL' 展开 idL':TC' id,id:real 匹配 L':TC' ,id:real L' ,idl' 查表(select(L' ,idL')={,}),展开 查表( ) 展开 ,idL':TC' ,id:real 匹配 L':TC' :rea l L' 查表( 查表(select(L' )={:}),展开 ) 展开 :TC' :real 匹配 TC' real T real 查表( 查表(select(T real)={real}),展开 ) 展开 C' # C' 查表( 查表(select(C' )={#}) ) # OK

编译原理期中测试题

编译原理期中测试题

系别___________________ 专业_____________________年级_____________________姓名_________________学号┈┈┈┈┈┈┈┈┈┈┈┈┈┈密┈┈┈┈┈┈┈┈┈┈┈┈┈┈封┈┈┈┈┈┈┈┈┈┈┈┈┈线┈┈┈┈┈┈┈┈┈┈┈┈┈┈计算机学院编译原理课期中测试题1.文法G所描述的语言是的集合。

A.文法G的字母表V中所有符号组成的符号串B.文法G的字母表V的闭包V*中的所有符号串C.由文法的开始符号推出的所有符号串D.由文法的开始符号推出的所有终结符串2.有文法G[I]:I→I1|I0|Ia|Ib|Ic|a|b|c ,下列符号串中是该文法的句子的有①ab0 ②a0c01 ③aaa ④bc10 可选项有:。

A.②③④B.①C.③D.①②③④3.词法分析所依据的是。

A.语义规则B.构词规则C.语法规则D.等价变换规则4.如果L(M) = L(M’),则M与M’。

A.等价B.M与M’都是二义的C.M与M’都是无二义的D.它们的状态数相等5.下面状态转换图接受的字集为。

1A.以0开头的二进制数组成的集合B.以0结尾的二进制数组成的集合C. 含奇数个0的二进制数组成的集合D.含偶数个0的二进制数组成的集合6.文法G[E]:E→T|E+T T→F|T*F F→a|(E)该文法句型E+F*(E+T)的直接短语是下列符号串的。

①(E+T) ②E+T ③F ④F*(E+T)可选项有:A.①③B.②③C.③④D.③7. 有限状态自动机能识别。

A.上下文无关文法B.上下文有关文法C.正规文法D.短语文法8. 如果文法G是无二义的,则它的任何句子 。

A.最左推导和最右推导对应的语法树必定相同B.最左推导和最右推导对应的语法树可能不同C.最左推导和最右推导必定相同D.可能存在两个不同的最左推导,但他们对应的语法树相同9.产生正规语言的文法为文法A . 0型B .1型 C.2型 D.3型10、素短语是指_______的短语。

(2021年整理)中南大学编译原理期终考试试卷01

(2021年整理)中南大学编译原理期终考试试卷01

中南大学编译原理期终考试试卷01编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(中南大学编译原理期终考试试卷01)的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为中南大学编译原理期终考试试卷01的全部内容。

中南大学编译原理期终考试试卷01一、填空题1、根据体系结构发展,操作系统分为____________、__________、__________、__________四种.2、分时系统的四个特征是__________、__________、__________、___________.3、多机系统的优点有:__________、__________、__________.4、信箱有____________、____________、____________三种类型。

5、文件存储空间的三种管理方法是__________、____________、____________。

6、为了赋予操作系统以某些特权,使得操作系统更加安全可靠地工作,实际操作系统中区分程序执行的两种不同的运行状态是_ _ _;__ _态程序不能执行特权指令。

7、在一个请求式页式存储系统中,页面大小为128字,一个用户程序访问的字地址序列为70,74,135,276,400,300,700,266,148,560,284,712。

其访问的页序列为。

假定分配给该程序的内存大小为384字,则采用FIFO,LRU和LFU 页面置换算法时,访问过程中的置换次数分别为__ _,__ _和_ __.8、通道是独立于的专管的处理机,它控制与内存之间的信息交换.9、一个用联想寄存器记录最活跃页表表目的分页系统,假定页表通常放在内存,且内存存取时间为1µs,联想寄存器查找时间为0.1µs。

北方工业大学《编译原理》期中试卷2019

北方工业大学《编译原理》期中试卷2019

北方工业大学《编译原理》课程期中答案2019年春季学期开课学院:信息学院考试方式:闭卷考试时间:95分钟班级姓名学号 1. 编译程序的输出是机器语言语言程序。

2. 一个上下文无关文法包含一组开始符号和一组终结符号。

3. 一个文法具有二义性,是该文法有两个不同的推导方式。

4. 词法分析时,单词符号有五种类别,其中常数没有属性信息。

5. 语法分析时,必须先消除文法中的左递归。

6. 构造LR 分析器的任务就是构造LR 分析表。

7. 递归下降分析法是自上向下分析法。

8. 某计算机上的某编译程序在另一台计算机上能直接使用的必要条件是两台计算机的操作系统功能完全相同。

9. LL(1)文法是无二义的文法。

10. SLR 分析法的S 是简单的意思。

1. ×;2. ×;3. ×;4. ×;5. ×;6. √;7. √;8. ×;9. √; 10 .√。

A .词法分析器B .语法分析器C .语义分析D .目标代码生成器 2、下列对编译程序描述正确的是( )。

订线装( ) ( ) ( ) ( )( ) ( ) ( ) ( ) ( ) ( )A.编译程序能把一种语言程序转换成另一种语言程序B.编译程序只是对高级语言的翻译C.链接程序只有链接功能D.优化是对目标代码的优化3、已知下列文法G[S],请问它的语言是()。

G[S]: S→dAA→aA | aA.{d m a n|n>1, m>1} B.{da n|n>0}C.{da n d|n>=1} D.{a n d|n>0}4、下列正规表达式中与(a* | b*)c等价的表达是()。

A.a *c| b*c B.a* | b*c C.a *c | b* D.(a | b)*c5)。

A.以1开头的二进制数组成的集合B.以0结尾的二进制数组成的集合C.含奇数个1和0的二进制数组成的集合D.以1开头,0结尾的二进制数组成的集合6、DFA与NFA的描述正确的是()。

编译原理考试试题

编译原理考试试题

编译原理考试试题
1. 简答题
(1)什么是编译原理?
(2)解释词法分析和语法分析的区别。

(3)描述语法制导翻译的过程。

(4)什么是上下文无关文法?
(5)解释LL和LR分析器之间的差异。

2. 分析题
对于以下文法G:
S → aB | bA
A → a | ε
B → b
进行如下操作:
(1)用LL(1)分析器分析串“ab”。

(2)用LR(1)分析器分析串“ba”。

3. 论述题
请分析编译器的工作原理并解释编译器的主要功能。

同时比较解释型语言和编译型语言之间的区别。

4. 计算题
对于文法G:
E → E + T | T
T → T * F | F
F → (E) | id
请根据该文法构建一个SLR(1)分析表并分析串“id + id * id”。

5. 应用题
假设您需要编写一个简单的编译器来编译一种自定义的编程语言。

请设计该编程语言的词法规则和语法规则,并解释如何构建一个简单的编译器来将该语言转换为目标代码。

以上为编译原理考试试题,希望能够帮助您对编译原理的相关知识有更全面的了解。

祝您考试顺利!。

编译原理期中测试题

编译原理期中测试题

1 算符优先分析是一种自底向上的分析方法,它是以什么作为每一步归约的对象?()选择一个答案a. 最左素短语b. 最右直接短语c. 句柄d. 最左直接短语2 下面哪种不是自底向上的语法分析文法?()选择一个答案a. LR(1)b. LL(k)c. SLR(1)d. 算符优先法3设G是一个给定的文法,S是文法的开始符号,如果S x(其中x∈V*),则称x是文法G 的一个。

选择一个答案Aa. 句型b. 候选式c. 单词d. 产生式4 文法G 产生的()的全体是该文法描述的语言。

选择一个答案a. 终结符集b. 非终结符集c. 句子d. 句型5 下面不是翻译程序的是()a. 解释程序b. 编译程序c. 源程序d. 汇编程序6 乔姆斯基(Chomsky)把文法分为四种类型,即0型、1型、2型、3型。

其中3型文法是( )a. 短语文法b. 上下文有关文法c. 上下文无关文法d. 正则文法7 后缀式ab+cd+/可用表达式来表示( )a. a+b/c+db. a+b/(c+d)c. (a+b)/(c+d)d. a+b+c/d8 设文法为:S→SA|AA→a|b则对句子aba,下面是规范推导。

a. S==>SA==>SAA==>SAa==>Sba==>Aba==>abab. S==>SA==>Sa==>SAa==>Sba==>Aba==>abac. S==>SA==>SAA==>AAA==>aAA==>abA==>abad. S==>SA==>SAA==>AAA==>AAa==>Aba==>aba9 高级语言编译程序常用的语法分析方法中,递归分析法属于哪种分析方法?()a. 自右至左b. 自左至右c. 自底向上d. 自顶向下10 最左简单子树的末端结点构成的符号串称为()a. 最左素短语b. 素短语c. 简单短语11 词法分析器用于识别_____。

a. 标识符b. 语句c. 字符串d. 单词12 正规式M1和M2等价是指。

编译原理期中测试(2015-2ans)

编译原理期中测试(2015-2ans)

2013级计算机科学与技术专业《编译原理》期中测试试题时间:2015年10月22日14:00—15:40 开卷一、分别设计文法与正规式(15分)1、设计文法产生下列语言集合:L={ a mbncpdq|m+n= p+q}解:S →aSd | A | DA →bAd | BD →aDc | BB →bBc | ε注:a不多于d时,b不少于c;反之,a不少于d时,b不多于c。

前一种情形通过对应A,后一种情形对应D。

2、对于大小写不敏感的语言,如SQL,如何用正规表达式来表示其关键字?例如:select可以写成SELECT、Select、seLECT等等,请说明你的想法。

二、判断题(5分)()1、所有文法都能改写成LL(1)文法。

()2、如果文法G是无二义的,则它的任何句子的最左推导和最右推导对应的语法树必定相同()3、(ab)*a 与a(ba)*是等价的正规式。

()4、所有产生式右部只含有一个终极符和一个非终极符的就是正规文法。

()5、语法树的内部结点可以是终极符。

三、简单应用题(12分)1、已知文法G[S]的产生式如下:S → (L)|aL → L,S|S给出句子(a,a)最左推导、最右推导、语法树以及短语和句柄2、有限状态自动机可用五元组(V T,V N,δ,q0,Z)来描述,设有一有限状态自动机M的定义如下:V T={0,1},V N={q0,q1,q2},Z={q2},δ的定义为:δ(q0,0)=q1 δ(q1,0)=q2δ(q2,1)=q2 δ(q2,0)=q2(1)画出它所对应的状态转换图,判断它是DFA还是NFA?(2)给出它所能接受的语言的正规表达式,并说明其含义。

四、(1)结合你目前所学的所有课程的知识和现实生活,有哪些问题可以使用FA来进行描述和处理?举一个例子说明。

(12分)(2)构造接受语言与7正规式(ab | aba)*所表示语言集合等价的最小DFA(15分)五、对于如下文法G[S],(1)给出至少两个理由说明它不是LL(1)文法。

北京大学 编译原理 期中考试

北京大学  编译原理  期中考试

2011年《编译技术》第三次小测验(2011年6月1日)姓名:_______________ 学号:________________(本次小测验闭卷。

时间:50分钟)1.[45pt] 简答a)[10pt] (类型表达式)假设类型名link和cell的定义如下(PASCAL):TYPE link = ^cell;cell = recordinfo: integer;next: linkend;FUNCTION foo (x:integer, y:cell) : link;请写出foo的类型表达式。

foo的类型表达式:integer × cell → POINTER (cell)其中,cell的类型表达式: RECORD((info×integer)×(next×POINTER(cell))a)[15pt] (语义检查)在C语言中,3++ 和(id+id)++这样的表达式在编译时会报告如下的错误: invalid lvalue in increment。

现有如下简化的C语言表达式文法:E → E +E | (E) | E++ | id | num设计一个语法制导的翻译模式,使其能够检查 “++” 运算符的运算对象是否合法。

(如果不合法,输出上述的错误消息)。

E’→E { }E → E1 + E2{ E.val := rvalue }E → (E1) { E.val := E1.val }if(E1.val = rvalue) thenE → E1++ {print(“invalid lvalue in increment”)E.val := rvalue }E → id { E.val := lvalue }E → num { E.val := rvalue }b)[12pt] (参数传递方式)给定Pascal的程序:program main(input, output);var a,b : integer;procedure p(x,y,z: integer);beginy:= y+1; z:= z+x;end;begina:= 3; b:= 4;p(a+b, a, a);print a;end.假定采用如下的过程参数传递方式,上述程序的输出结果分别是什么?(i) 传值调用:__________3_________________(ii) 引用调用:__________11__________________(iii) “复制-恢复”调用:________10_________________(iv) 换名调用:_____________12___________________c)[8pt] (运行时存储分配)一个PASCAL程序(采用栈式存储分配,用存取链实现对非局部名字的访问)由主程序M和过程P、Q、R、S、T 构成,它们之间的全部包含关系是:M直接包含P和Q;P直接包含R 和S;Q直接包含T。

编译原理期中考试答案

编译原理期中考试答案

三、完成下列各题(共30分)1、(5分)2、(1)E⇒E+T⇒ E+T+T ⇒ E+T+F⇒ E+T+i⇒⇒ E+T*F+i⇒ T+T*F+i(3分)语法树(2分)(2)短语:T*F,T,i,T+T*F,T+T*F+i (1分)简单短语:T*F,T,i (1分)句柄:T (1分)活前缀:T (1分)可归前缀:T (1分)3、如果对于某文法的同一个句子存在两个不同的语法树则称该句子是二义性的,包含二义性句子的文法称为二义性文法。

(4分)对于句子i+i*i有两棵不同的语法树。

画出两棵不同的语法树(6分)四、(共40分)1、R=1(1|0)*|0正则式转化为NFA(5分)NFA转化为DFA,并换名(5分)DFA最小化(5分)K1={B,C,D} K2={A}K11={ C,D} K12={B}C,D为等价状态,合并等价状态为0,11 0,10,12、S→aBc|bABA→aAb|bB→b|ε(1)FOLLOW(S)={#}FOLLOW(A)={b,#}FOLLOW(B)= {c,#} (3分)(2)SELECT(S→aBc)={a}SELECT(S→Bab)={b}SELECT(S→aBc)∩SELECT(S→Bab)=ФSELECT(A→aAb)={a}SELECT(A→b)={b}SELECT(A→aAb)∩SELECT(A→b)={b}=ФSELECT(B→b)={b}SELECT(ε)={c,#}SELECT(B→b)∩SELECT(ε)=Ф所以该文法是LL(1)文法。

(7分)(3)(5分)3、对规则进行编号(0) S→A(1)A→Ab(2) A→bBa(3)B→aAc(4) B→a(5) B→aAb(1)为这个文法构造LR(0)项目集规范族。

(2)该文法是LR(0)文法吗?请说明理由。

(3)构造它的LR(0)分析表。

(15分)(2)状态C5存在“移进-归约”冲突,状态C9存在“归约-归约”冲突,所以该文法不是LR(0)文法。

2005-2006第2学期编译原理期中试题

2005-2006第2学期编译原理期中试题

2005-2006第二学期编译原理期中考试试题(不用抄题,写清题号,将答案写在答题纸上)
1.编译过程通常分为哪几个主要阶段?每个阶段的主要功能?
2.编译程序和解释程序有哪些区别?
3.给出描述非0数字作为开始符的奇数字符串的正则表达式或正则式。

4.已知文法G[S]:
S → S;G│G G → G(T)│ H
H → a │ (S) T → T+S │ S
找出句型:a(T+S);H;(S)的短语、直接短语和句柄。

5.已知有限自动机如图:
(1)以上状态转换图表示的语言有什么特
征?
(2)写出其正规式与正规文法.
(3)构造识别该语言的最小的有限自动机DFA。

6.对于文法G2,填写各产生式的选择集合和G2的预测分析表。

G2:①E→TE' ②E'→+TE'
③E'→ε④T→FT'
⑤T'→*FT' ⑥T'→ε
⑦F→(E) ⑧F→i
7.说明如下文法是否是LL(1)文法,若不
是,将其转换为LL(1)文法。

最后给出该文法的LL(1)分析表。

G[A]:A → B e
B → B b | a。

编译原理期中试卷

编译原理期中试卷

《编译原理》期中试卷姓名_______ 学号__________ 成绩_______一、是非题(下列各题你认为正确的,请在题干的括号内打“√”,错的打“×”。

每题2分) l、一个LL( l)文法一定是无二义的。

( )2、逆波兰法表示的表达式亦称前缀式。

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

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

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

( )6、因名字都是用标识符表示的,故名字与标识符没有区别()7、一个句型的真接短语语是唯一的。

()8、已经说明文法的二义性是可判定的。

()9、每个基本块可用一个DAG表示。

()10、每个过程的活动记录的体积在编译时可静态确定。

()11、并不是每个文法都能改写成LL(1)文法。

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

()13、一个上下文无关文法的开始符号可以是终结符或非终结符。

()14、孤立地考虑一个基本块常常不能确定一个赋值是否真是无用的。

()15、含有优化部分的编译程序的执行效率高。

()16、凡是具有某种特殊性质的客体的聚合,都可称为集合。

()17、设有符号串x和y,把y的符号写在x的符号之后所得的符号串,叫做x与y的联结,记为xy。

()18、符号表由词法分析程序建立,由语法分析程序使用。

()19、编译程序中的语法分析器接受以语句为单位的输入,并产生有关信息供以后各阶段使用。

()20、若一个句型中出现了某一产生式的右部,则此右部一定是该句型的句柄。

()二、选择题:(每题2分)1、编译程序是一种常用的_________软件。

a.应用b.系统c.支撑d.自动化2、在使用高级语言编程时,首先可通过编译程序发现源程序的全部______错误和部分语义错误。

a.语法b.语义c. 语用d.运行3、运算符与运算对象类型不符"属于______。

《编译原理》期中及期末习题

《编译原理》期中及期末习题

《编译原理》期中及期末习题第⼀章⾼级语⾔与编译程序概述典型例题:单项选择题1.1.1.将编译程序分成若⼲个“遍”是为了___。

a.提⾼程序的执⾏效率b.使程序的结构更加清晰c.利⽤有限的机器内存并提⾼机器的执⾏效率d.利⽤有限的机器内存但降低了机器的执⾏效率1.1.2.构造编译程序应掌握____。

(陕西省2000年⾃考题)a.源程序b.⽬标语⾔c.编译⽅法d.以上三项都是1.1.3.变量应当_。

a.持有左值b.持有右值c.既持有左值⼜持有右值d.既不持有左值也不持有右值1.1.4.编译程序绝⼤多数时间花在____上。

(陕西省1998年⾃考题)a.出错处理b.词法分析c.⽬标代码⽣成d.管理表格1.1.5.____不可能是⽬标代码。

( 陕西省1997年⾃考题)a.汇编指令代码b.可重定位指令代码c.绝对指令代码d.中间代码1.1.6.数组A[1…20,1…10]的⾸地址偏移量为0,按列存储,每个元素占⼀个字节,存储器按字节编址,则A[i,j]的偏移地址为____。

a.(i-1)X10+(j-1)b.(i-1)X20+(j-1)c. (i-1)+(j-1)X10d.(i-1)+(j-1)X201.1.7.使⽤____可以定义⼀个程序的意义。

a.语义规则b.词法规则c.产⽣规则d.左结合规则1.1.8.表达式X:=5中,变量x____。

a.只有左值b.只有右值c.既有左值⼜有右值d.没有左值也没有右值1.1.9.词法分析器的输⼊是__。

a.单词符号b.源程序c.语法单位d.⽬标程序1.1.10.中间代码⽣成时所遵循的是_。

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

a.汇编程序的翻译b.⾼级语⾔程序的解释执⾏c.机器语⾔的执⾏d.⾼级语⾔的翻译1.1.12.词法分析应遵循_。

(陕西省2000年⾃考题)a.语义规则b.语法规则c.构词规则d.等价变换规则多项选择题:1.2.1 编译程序各阶段的⼯作都涉及到___。

北方工业大学《编译原理》期中试卷2017

北方工业大学《编译原理》期中试卷2017

北方工业大学《编译原理》课程期中试卷答案A 卷2017年春季学期开课学院: 计算机考试方式:闭卷考试时间:95 分钟班级 姓名 学号 一、 判断题(每个小题1分,共10分)1. 汇编程序与编译程序都是翻译程序,主要区别是加工对象的不同。

( )2. 解释程序同时处理源程序和数据。

( )3. 编译各阶段都涉及到构造、查找或更新有关的表格。

( )4. 上下文有关文法所定义的语法范畴是完全独立于这种范畴可能出现的环境的。

( )5. 乔姆斯基把文法分为0型、1型、2型和3型,0型文法的描述能力弱于1型。

( )6. 词法分析器不断地从输入缓冲区读入字符串,并进行识别。

( )7. 超前搜索是为了得到某一个单词符号的确切性质,需要超前扫描若干个字符。

( )8. 一张转换图只包含有限个状态,其中有一个为初态,一个为终态。

( ) 9. LR 分析法不是规范归约方法。

( ) 10. 程序设计语言的单词都能用正规式来定义。

( ) 解: 1. √ 2. √ 3. √ 4. × 5. × 6. × 7. √ 8. × 9. × 10. √二、 选择题(每个小题1分,共20分)1. 自下而上语法分析的工作原理是____。

A. 移进-推导法B. 最左推导法C. 移进-规约法D. 推导-规约法 2. LR 分析法每次都是对当前句型的____进行规约。

A. 素短语B. 句柄C.短语D. 最左素短语订线装3. 如果文法G是无二义的,则对于它的任何句子____。

A. 最左推导和最右推导对应的语法树必定相同B. 最左推导和最右推导对应的语法树可能不同C. 最左推导和最右推导必定相同D. 可能存在两个不同的最左推导,但它们对应的语法树相同4. 消除间接左递归时,由于对非终结符排序的不同,最后所得的文法在形式上可能不一样。

但不难证明,它们都是____。

A. 等价的B. 不等价的C. 形式上不一样D. 形式上完全一样5. 语法制导翻译法直观上说就是为文法中每个产生式配上一组语义规则,并且在语法分析的同时____这些语义规则。

《编译原理》考试试题及答案(汇总)

《编译原理》考试试题及答案(汇总)

《编译原理》考试试题及答案(汇总)一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分)1.编译程序是对高级语言程序的解释执行.(× )2.一个有限状态自动机中,有且仅有一个唯一的终态。

(×)3.一个算符优先文法可能不存在算符优先函数与之对应. (√ )4.语法分析时必须先消除文法中的左递归。

(×)5.LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。

(√)6.逆波兰表示法表示表达式时无须使用括号。

(√ )7.静态数组的存储空间可以在编译时确定。

(×)8.进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。

(×) 9.两个正规集相等的必要条件是他们对应的正规式等价. (× )10.一个语义子程序描述了一个文法所对应的翻译工作。

(×)二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分)1.词法分析器的输出结果是_____。

A.( ) 单词的种别编码B.( ) 单词在符号表中的位置C.() 单词的种别编码和自身值D.() 单词自身值2.正规式M 1 和M 2 等价是指_____。

A.( ) M1和M2的状态数相等B.() M1和M2的有向边条数相等C.()M1和M2所识别的语言集相等D.()M1和M2状态数和有向边条数相等3.文法G:S→xSx|y所识别的语言是_____。

A.() xyx B.()(xyx)* C.() xnyxn(n≥0) D.() x*yx*4.如果文法G是无二义的,则它的任何句子α_____。

A.( )最左推导和最右推导对应的语法树必定相同B.() 最左推导和最右推导对应的语法树可能不同C.( ) 最左推导和最右推导必定相同D.()可能存在两个不同的最左推导,但它们对应的语法树相同5.构造编译程序应掌握______。

编译原理期测试答案

编译原理期测试答案

编译原理期中测试答案三、单项选择题(每题3分,共15分)1.设有文法G[S]: S→(AS)|(b)A→(SaA)|(a)该文法的句型(((b)a(a))(b))有 C 个直接短语。

A.1B. 2C. 3D. 42.如果一个文法满足 D ,则称该文法是二义性文法。

(1) 文法的某一个句子存在两个(包括两个)以上的语法树(2) 文法的某一个句子存在两个(包括两个)以上的最左推导(3) 文法的某一个句子存在两个(包括两个)以上的最右推导(4) 在进行归约时,文法的某些规范句型的句柄不唯一上述描述中的所有正确描述有:A. (1)B. (1)(2)C. (1)(2)(3)D. (1)(2)(3)(4) 3.构造一个不带回溯的自顶向下语法分析器,要求文法满足E 。

A.对每个形如A→x1|x2|…|xn的产生式,要求FIRST(xi)与FIRST(xj)的交集为空集(i≠j)B.对每个形如A→x1|x2|…|xn的产生式,若xi* ε,则要求FIRST(xj)与FOLLOW(A)的交集为空集(i≠j)C. 不含左递归D. A和B同时满足E. A、B和C同时满足4、给定文法A→bA|cc,下列符号串中,是该文法的句子的是C 。

① cc ② bcbc ③ bcbcc ④ bccbcc ⑤ bbbccA① B. ①③④⑤ C. ①⑤ D. ①④⑤5、若一个句型中出现了某一产生式的右部,则此右部 B 是该句型的句柄。

A.一定B. 不一定C. 一定不D. 无法判断四、简述题(每题5分,共20分)1、写一上下文无关文法,它能产生语言}0n。

naL mb,=m|{>=#S→A#BA→Aa|B→Bb|2、将文法G[S] 改写为等价的G′[S],使G′[S]不含左递归和左公共因子。

G[S]:S→bSAe | bAA→Ab | d答:文法G[S] 改写为等价的不含左递归和左公共因子的G'[S]S→bBB→SAe | AA→d A'A' →bA' | ε3、什么是文法的二义性?下面的文法是二义的吗?为什么?G[S]:S→AB | ABD A→a B→CD |D C→c D→d答:如果一个文法存在某个句子对应两棵不同的语法树,则该文法是二义的。

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

C -> C ; D | D D -> L : T L -> L , id | id T -> int | real (1) 改写 改写G[C],使之适合自上而下分析. ,使之适合自上而下分析. (2) 为改写后的文法构造一个 (1)预测分析表. 为改写后的文法构造一个LL( )预测分析表. (3) 给出串: id : int ; id , id : real 的分析过程. 给出串: 的分析过程. 注意: 作为一个符号处理. 注意:int ,id ,real 作为一个符号处理. :(3) 答:( ) C DC' C' ;DC'| D -> L : T L idL' L' ,idL'| T int|real 过程:压入1个 输入为: 过程:压入 个C, 输入为:id:int; id,id:real 产生式 1. 展开 C 展开: C DC' 展开 DC' id:int;id,id:real D L:T 展开 L:TC' id:int;id,id:real L idL' 展开 idL':TC' id:int;id,id:real 匹配 L':TC' :int;id,id:real L' 查表(select(L' )={:}),展开 查表( ) 展开 :TC' :int;id,id:real 匹配 TC' TC int;id,id:real T int 查表( int)={int}),展开 查表(select(T int)={int}),展开 intC' int:id,id:real 匹配 C' ;id,id:real C' ;DC' 查表(select(C' ;DC')={;}),展开 查表( 展开 ;DC' ;id,id:real 匹配 DC' id,id:real D L:T 展开 L:TC' id,id:real L IdL' 展开 idL':TC' id,id:real 匹配 L':TC' ,id:real L' ,idl' 查表(select(L' ,idL')={,}),展开 查表( ) 展开 ,idL':TC' ,id:real 匹配 L':TC' :rea l L' 查表( 查表(select(L' )={:}),展开 ) 展开 :TC' :real 匹配 TC' real T real 查表( 查表(select(T real)={real}),展开 ) 展开 C' # C' 查表( 查表(select(C' )={#}) ) # OK
文法G[C]: 三. 文法 :

给出语言L={ anbnc2i | n>=1,i>=1 }的文法,并说明 的文法, 一.给出语言 给出语言 的文法 该文法为哪一类文法. 该文法为哪一类文法. 答(1)L XY; X aXb| ;Y c2Y| ) 型文法, (2)文法类型是 型文法,即上下文无关文法. )文法类型是2型文法 即上下文无关文法.
Z ->0 | Z0
文法G[C]: C -> C ; D | D D -> L : T 三. 文法 : L -> L , id | id T -> int | real (1) 改写 改写G[C],使之适合自上而下分析. ,使之适合自上而下分析. (2) 为改写后的文法构造一个 (1)预测分析表. 为改写后的文法构造一个LL( )预测分析表. (3) 给出串: id : int ; id , id : real 的分析过程. 给出串: 的分析过程. 注意: 作为一个符号处理. 注意:int ,id ,real 作为一个符号处理.
1 S
S=1|(1(0)*0)* 1(0)*0(1|) Z
1 C
A 1 D 0 S->1 | F | F1 0
1
B 0
0
F -> 1Z | F1Z
Z ->0 | Z0
1 1 S
4 Z
S' 1 1 0 1 Z 0 D 0 D S
F 1 1 2
Z A
F
Z
1 C
A 0
1
B 0
0
Z=0D D=0D| S->1 | F | F1
F -> 1Z | F1Z
Z ->0 | Z0
1
S=1|(1(0)*0)* 1(0)*0(1|)
1 S A
0 B 0
{s,a} - 0{-}- 1{zdb} {zdb}- 0{dabcz}- {-} {zabcd} 0{zabcd} 1{bzd}
S->1 | F | F1
F -> 1Z | F1Z
编译原理
要求:开卷, 要求:开卷,独立完成
期中考试
中南民族大学计算机科学学院
给出语言L={ anbnc2i | n>=1,i>=1 }的文法,并说明 的文法, 一.给出语言 给出语言 的文法 该文法为哪一类文法. 该文法为哪一类文法. 已知文法G[S]为: 二.已知文法 已知文法 为 S->1 | F | F1 F -> 1Z | F1Z (1) 写出正规式 ,使得 ( e ) = L ( G ); 写出正规式e,使得L (2) 构造 构造DFA M,使得 ( M ) = L ( e ); ,使得L (3) 将该 将该DFA M 最小化. 最小化.
Z ->0 | Z0
文法G[C]: C -> C ; D | D D -> L : T 三. 文法 : L -> L , id | id T -> int | real (1) 改写 改写G[C],使之适合自上而下分析. ,使之适合自上而下分析. (2) 为改写后的文法构造一个 (1)预测分析表. 为改写后的文法构造一个LL( )预测分析表. (3) 给出串: id : int ; id , id : real 的分析过程. 给出串: 的分析过程. 注意: 作为一个符号处理. 注意:int ,id ,real 作为一个符号处理. :(1)消除左递归,合并公因子. 答:( )消除左递归,合并公因子. C DC' C' ;DC'| L idL' L' ,idL'| (2) LL(1) select(C' ;DC')={;} Select(C' )={#} select(L' ,idL')={,} Select(L' )={:} select(T int)={int} Select(T Real)={Real} (3)
已知文法G[S]为: 二.已知文法 已知文法 为 S->1 | F | F1 F -> 1Z | F1Z Z ->0 | Z0 (1) 写出正规式 ,使得 ( e ) = L ( G ); 写出正规式e,使得L (2) 构造 构造DFA M,使得 ( M ) = L ( e ); ,使得L (3) 将该 将该DFA M 最小化. 最小化. 答: (1) 文法到正规表达式 F->1Z|F1Z改写为 F=(1Z)*1Z 改写为 Z->0|Z0改写为 Z=(0)*0 改写为 E=1|F|F1=1|(1Z)*1Z|(1Z)*1Z1 =1|(1(0)*0)*1(0)*0|(1(0)*0)* 1(0)*01 =1|(1(0)*0)* 1(0)*0(1|) (2) 构造 构造DFMA(正规表达式到 NDFAM) ( )
F=1ZA A=1ZA| F -> 1Z | F1Z Z ->0 | Z0

1 S
S=1|(1(0)*0)* 1(0)*0(1|) Z
1 C
A 1 D 0 S->1 | F | F1 0
1
B
0
0 {s,a} - 0{-}- 1{zdb}
{zdb}- 0{dabcz}- {-} {zabcd} 0{zabcd} 1{bzd}
相关文档
最新文档