河北科技大学200X—200X学年第X学期编译原理试题(含答案)
编译原理习题及答案(整理后)

编译原理习题及答案(整理后)第⼀章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所识别的语⾔是。
c. x n yx n(n≥0)d. x*yx*2、⽂法G描述的语⾔L(G)是指。
a. L(G)={α|S + ?α , α∈VT*} b. L(G)={α|S*?α, α∈VT*}c. L(G)={α|S *?α,α∈(VT∪V N*)} d. L(G)={α|S+ ?α, α∈(VT∪V N*)}3、有限状态⾃动机能识别。
a. 上下⽂⽆关⽂法b. 上下⽂有关⽂法c.正规⽂法d. 短语⽂法4、设G为算符优先⽂法,G的任意终结符对a、b有以下关系成⽴。
a. 若f(a)>g(b),则a>bb.若f(a)c. a~b都不⼀定成⽴d. a~b⼀定成⽴5、如果⽂法G是⽆⼆义的,则它的任何句⼦α。
a. 最左推导和最右推导对应的语法树必定相同b. 最左推导和最右推导对应的语法树可能不同c. 最左推导和最右推导必定相同d. 可能存在两个不同的最左推导,但它们对应的语法树相同6、由⽂法的开始符经0步或多步推导产⽣的⽂法符号序列是。
编译原理期末试题(8套含答案+大题集)

《编译原理》期末试题(一)一、是非题(请在括号内,正确的划√,错误的划×)(每个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.构造编译程序应掌握______。
编译原理习题及答案(整理后)

第一章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.词法分析2、编译程序工作时,通常有阶段。
a.词法分析b.语法分析c.中间代码生成d.语义检查e.目标代码生成三、填空题1、解释程序和编译程序的区别在于。
2、编译过程通常可分为5个阶段,分别是、语法分析、代码优化和目标代码生成。
3、编译程序工作过程中,第一段输入是,最后阶段的输出为程序。
4、编译程序是指将程序翻译成程序的程序。
单选解答1、将编译程序分成若干个“遍”是为了使编译程序的结构更加清晰,故选b。
2、构造编译程序应掌握源程序、目标语言及编译方法等三方面的知识,故选d。
3、对编译而言,变量既持有左值又持有右值,故选c。
4、编译程序打交道最多的就是各种表格,因此选d。
5、目标代码包括汇编指令代码、可重定位指令代码和绝对指令代码3种,因此不是目标代码的只能选d。
编译原理样题1(有答案)

编译原理一、是非题(下列各题你认为正确的,请在题干的括号内打“√”,错的打“×”。
每题1分,共5分)l、一个LL( l)文法一定是无二义的。
…………………………………………… ( )2、逆波兰法表示的表达式亦称前缀式。
……………………………………………()3、目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。
……………()4、正规文法产生的语言都可以用上下文无关文法来描述。
………………………()5、一张转换图只包含有限个状态,其中有一个被认为是初态,最多只有一个终态。
……………………………………………………………………………………()二、填空题(每题2分,共5分)1、语法分析是依据语言的( )规则进行的,中间代码产生是依据语言的( )规进行的。
2、程序语言的单词符号一般可以分为( )等等。
3、语法分析器的输入是( ),其输出是( )。
4、所谓自上而下分析法是指( )。
5、如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是( )。
6、对于文法G,仅含终结符号的句型称为( )。
7、逆波兰式ab十c+d*e—所表达的表达式为( )。
8、一个名字的属性包括( )和( )。
9、对于数据空间的存贮分配,FORTRAN采用( )策略,PASCAL采用( )策略。
10、所谓优化是指( )。
三、名词解释题(每题2分,共10分)l、词法分析器:2、语法:3、最右推导:4、语法制导翻译:5、基本块:四、简述题(每题4分,共24分)l、考虑下面的程序:…………Var i:integer;a:array[1··2] of integer;prncedure Q( b);Var b:integer;Begini:=1;b:=b十2;i:=2;b:=b+3End;Begina[1]:=5;a[2]:=6;i:=1;Q(a[i]);print(a[l],a[2])End.试问,若参数传递的方式分别采用传地址和传值时,程序执行后输出a[l],a[2]的值是什么?2、画出识别pascal中实常数(可带正负号,但不含指数部分)的状态转换图。
《编译原理》期末考试题库含答案.docx

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

编译原理复习题及答案一、选择题1.一个正规语言只能对应(B)A 一个正规文法B 一个最小有限状态自动机2.文法G[A]:A→εA→aB B→Ab B→a是(A)A 正规文法B 二型文法3.下面说法正确的是(A)A 一个SLR(1)文法一定也是LALR(1)文法B 一个LR(1)文法一定也是LALR(1)文法4.一个上下文无关文法消除了左递归,提取了左公共因子后是满足LL(1)文法的(A)A 必要条件B 充分必要条件5.下面说法正确的是(B)A 一个正规式只能对应一个确定的有限状态自动机B 一个正规语言可能对应多个正规文法6.算符优先分析与规范归约相比的优点是(A)A 归约速度快B 对文法限制少7.一个LR(1)文法合并同心集后若不是LALR(1)文法(B)A 则可能存在移进/归约冲突B 则可能存在归约/归约冲突C 则可能存在移进/归约冲突和归约/归约冲突8.下面说法正确的是(A)A Lex是一个词法分析器的生成器B Yacc是一个语法分析器9.下面说法正确的是(A)A 一个正规文法也一定是二型文法B 一个二型文法也一定能有一个等价的正规文法10.编译原理是对(C)。
A、机器语言的执行B、汇编语言的翻译C、高级语言的翻译D、高级语言程序的解释执行11.(A)是一种典型的解释型语言。
A.BASIC B.C C.FORTRAN D.PASCAL 12.把汇编语言程序翻译成机器可执行的目标程序的工作是由(B)完成的。
A. 编译器B. 汇编器C. 解释器D. 预处理器13.用高级语言编写的程序经编译后产生的程序叫(B)A.源程序B.目标程序C.连接程序D.解释程序14.(C)不是编译程序的组成部分。
A.词法分析程序B.代码生成程序C.设备管理程序D.语法分析程序15.通常一个编译程序中,不仅包含词法分析,语法分析,语义分析,中间代码生成,代码优化,目标代码生成等六个部分,还应包括(C)。
A.模拟执行器B.解释器C.表格处理和出错处理D.符号执行器16.编译程序绝大多数时间花在(D)上。
编译原理考试试题及答案
《编译原理》考试试题及答案(附录)一、判断题:1.一个上下文无关文法的开始符,可以是终结符或非终结符。
( X )2.一个句型的直接短语是唯一的。
( X )3.已经证明文法的二义性是可判定的。
( X )4.每个基本块可用一个DAG表示。
(√)5.每个过程的活动记录的体积在编译时可静态确定。
(√)6.2型文法一定是3型文法。
( x )7.一个句型一定句子。
( X )8.算符优先分析法每次都是对句柄进行归约。
(应是最左素短语) ( X )9.采用三元式实现三地址代码时,不利于对中间代码进行优化。
(√)10.编译过程中,语法分析器的任务是分析单词是怎样构成的。
( x )11.一个优先表一定存在相应的优先函数。
( x )12.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。
( )13.递归下降分析法是一种自下而上分析法。
( )14.并不是每个文法都能改写成LL(1)文法。
( )15.每个基本块只有一个入口和一个出口。
( )16.一个LL(1)文法一定是无二义的。
( )17.逆波兰法表示的表达试亦称前缀式。
( )18.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。
( )19.正规文法产生的语言都可以用上下文无关文法来描述。
( )20.一个优先表一定存在相应的优先函数。
( )21.3型文法一定是2型文法。
( )22.如果一个文法存在某个句子对应两棵不同的语法树,则文法是二义性的。
( )二、填空题:1.( 最右推导 )称为规范推导。
2.编译过程可分为(词法分析),(语法分析),(语义分析和中间代码生成),(代码优化)和(目标代码生成)五个阶段。
3.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是()。
4.从功能上说,程序语言的语句大体可分为()语句和()语句两大类。
5.语法分析器的输入是(),其输出是()。
6.扫描器的任务是从()中识别出一个个()。
河北科技大学编译原理的试卷和答案
河北科技大学200X—200X学年第X学期《编译原理》考试试卷学院班级姓名学号题号一二三四五六七八九总分得分一、简述编译程序的功能,并解释编译程序和解释程序的区别。
(8分)。
编译程序的功能:编译程序的功能是把高级语言写成的程序转换成汇编语言程序或机器语言程序。
编译程序和解释程序的区别:在计算机上执行一个高级语言程序,编译程序是首先通过编译程序把源程序翻译成机器语言程序,然后执行目标程序;解释程序是采用边翻译边执行的解释执行方式来执行高级语言程序。
二、将下列ε-自动机转化为非ε-自动机。
(10分)解:三、化简下列自动机。
(12分)解:化为确定自动机:2和4等价,3和(4,5)等价四、已知文法G[E]:E→E+T|TT→T*E|F F→(E)|i试画出句型(T+i)*i+F 的语法树,并指出该句型的所有的短语,简单短语和句柄。
(10分)语法树:短语8个:1.(T+i)*i+F2.(T+i)*i3.(T+i)4.T+i5.T6.第一个i7.第二个i8.F简单短语4个:T ;第一个i;第二个i;F句柄1个:TE E +T T T *E FF E ()+E TF i T F i五、已知文法G[Z]:Z→bMbM→a|(LL→Ma)(1)试写出文法G的LL矩阵。
(2)试写出b(aa)b的LL分析过程。
(15分)解:select(Z→bMb)={b}select(M→a|(L)={a,(}select(L→Ma))=first(M)={a,(}六、设有文法定义:<实型变量说明>→real<标识符表><标识符表>→<标识符表>,i<标识符表>→i将该文法缩写后并拓广为G[S’]如下:1.S’→S2.S→r D3.D→D,i4.D→i试判别G[S’]文法为SLR(1)文法,并写出该文法的SLR(1)矩阵。
(15分)解:follow(S)=follow(S’)={#}follow(S)∩{,}=φ满足上述条件则可利用SLR(1)方法。
编译原理期末考试题目及答案
一、挖空题(每空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.一个有限状态自效果中,有且仅有一个唯一的末态.x3.一个算符劣先文法的每个非末结标记间皆也大概存留劣先闭系.X4.语法分解时必须先与消文法中的左递归 .X6.顺波兰表示法表示表白式时无须使用括号.R9.二个正规集相等的需要条件是他们对付应的正规式等价. X1.编译步调是对付下档谈话步调的编译真止.X2.一个有限状态自效果中,有且仅有一个唯一的初初态.R3.一个算符劣先文法的每个非末结标记间皆没有存留劣先闭系.R4.LL(1)语法分解时必须先与消文法中的左递归 . R5.LR分解法正在自左至左扫描输进串时便能创制过失,但是没有克没有及准确天指出堕落天面. R6.顺波兰表示法表示表白式时根据表白式会使用括号. X7.固态数组的保存空间不妨正在编译时决定.X8.举止代码劣化时应着沉思量循环的代码劣化,那对付普及目标代码的效用将起更大效用.X9.二个正规集相等的需要条件是他们爆收的标记串是相共的. R10.一个语义子步调形貌了一个文法所对付应的翻译处事. X1.什么是S-属性文法?什么是L-属性文法?它们之间有什么闭系?S-属性文法是只含有概括属性的属性文法. (2分)L-属性文法央供对付于每个爆收式A X1X2…Xn,其每个语义准则中的每个属性大概者是概括属性,大概者是Xj的一个继启属性,且该属性仅依好于:(1)爆收式Xj的左边标记X1,X2…Xj-1的属性;(2)A的继启属性. (2分)S-属性文法是L-属性文法的惯例.(1分)2.什么是LL(1)分解器2.什么是LR(0)分解器所谓LR(0)分解,是指从左至左扫描战自底进与的语法分解,且正在分解的每一步,只须根据分解栈目前已移进战归约出的局部文法标记,并至多再背前查看0个输进标记,便能决定相对付于某一爆收式左部标记的句柄是可已正在分解栈的顶部产死,进而也便不妨决定目前所应采与的分解动做(是移进仍旧按某一爆收式举止归约等).五、概括题(共40分)1.(10分)对付于文法 G[S] :S → 1A | 0B | ε A → 0S | 1AA B → 1S | 0BB⑴ (3 分 ) 请写出三个闭于 G[S] 的句子;⑵ (4 分 ) 标记串 11A0S 是可为 G [S] 的句型?试道明您的论断.⑶ (3 分 ) 试绘出 001B 闭于 G [S] 的语法树.问:(1)三个 0 战 1 数量相等的串(每个1分)(2) S => 1A => 11AA => 11A 0S(3)2.(10分)设有谈话 L={ α | α∈ {0,1} + ,且α没有以 0 启头,但是以 00 末端 } .3分)试写出形貌 L 的正规表白式;⑵(7分)构制辨别 L 的 DFA (央供给出仔细历程,并绘出构制历程中的NFA 、 DFA 的状态变更图,以及最小DFA的状态变更图 ) .问:( 1 )(3分)正规表白式: 1(0|1) * 00( 2 )(7分)第一步(3分):将正规表白式变更为 NFA第二步(2分):将 NFA 决定化为 DFA :(1分)状态输进I 0 I 1 t 0 1[S] —[A,D,B] q 0 —q 1[A,D,B] [D,B,C] [D,B] q 1 q 2 q 3[D,B,C] [D,B,C,Z] [D,B] q 2 q 4 q 3[D,B] [D,B,C] [D,B] q 3 q 2 q 3[D,B,C,Z] [D,B,C,Z] [D,B] q 4 q 4 q 3DFA 的状态变更图(1分)第三步(2分):将DFA 最小化:(1分)将状态区分末态与非末态二个集中:A={q0,q1,q2,q3},E={q4}根据A、E集中的情况,对付A集中举止区分状态输进I 0 I 1q0—Aq1AAq2EAq3AA将状态集A区分为二个集中:A={q0,q1,q3},B={2}根据A、B集中的情况,对付A集中举止区分状态输进I 0 I 1q0—Aq1BAq3BA将状态集A区分为二个集中:A={q0},C={q1,q3}根据A、C集中的情况,对付C集中举止区分状态输进I 0 I 1q1BAq3BA最小DFA 的状态变更图(1分)3.(20分)给定文法 G[E] :E → E+T | TT → T*F | FF → (E) | i该文法是 LL(1) 文法吗?(央供给出仔细历程,如果是LL(1),给出分解表)问:(1)该文法没有是LL(1)文法,果为有左递归,与消左递归可赢得一个LL(1)文法(2分)(2)与消左递归,得新文法 (3分)E → TE’E’→ +TE’| εT → FT’T’→ *FT’ |εF → (E) | i(3)供爆收式左部的First集 (2.5分)First(TE’) = First(T)= First(F)={(,i}First(+TE’) = {+}First(FT’) = First(F)={(,i}First(*FT’) = {*}First((E)) = {(}First(i) = {i}(4)供所有非末结符的Follow集(2.5分)Follow(E) = {$,)}Follow(E’) = Follow(E) = {$,)}Follow(T) = First(E’)∪Follow(E)={+} ∪{$,)}={$,+,)} Follow(T’) = Follow(T) ={$,*,)}Follow(F) = First(T’)∪Follow(T)∪Follow(T’)= {$,*,)} (5)供所有爆收式的Select集 (2.5分)Select(E → TE’)=First(TE’)= {(,i}Select(E’→ +TE’)=First(+TE’)= {+}Select(E’→ε)= Follow(E’) = {$,)}Select(T → FT’)=First(FT’)= {(,i}Select(T’→ *FT’)=First(*FT’)= {*}Select (T ’→ε)= Follow(T ’) ={$,+,)} Select (F → (E))=First((E))= {(} Select (F → i )=First(i)= {i}(6)对付相共左部的所有Select 即供接集(2.5分) Select (E ’→ +TE ’)∩Select (E ’→ε)=Φ Select (T ’→ *FT ’)∩Select (T ’→ε)=Φ Select (F → (E))∩Select (F → i )=Φ所以,变革后的文法是LL (1)文法,其分解表如下 (7) LL(1) 分解表( 5 分)V NV T+ * i ( )$E E → TE ’ E → TE ’ E ’ E ’→ +TE ’ E ’→ε E ’→εT T → FT ’ T → FT ’ T ’ T ’→ε T ’→ *FT ’ T ’→ε T ’→εF F → (E) F → i1.(10分)对付于文法G :SaSbS|aS|d道明该文法是二义性文法.问:一个文法,如果存留某个句子有没有只一棵语法分解树与之对付应,那么称那个文法是二义性文法.(5分)句子aadbd 有二棵语法树(5分,划一棵树给3分).如下图:(6分)(1) (2)由此可知,SaSbS|aS|d 定义的文法是二义性文法.3.(20分)给定一个简朴的算术表白式文法 G[E] : E → E+T | T T → T*F | F F → (E) | i该文法是 SLR(1) 文法吗?(央供给出仔细历程,如果是SLR 文法,给出分解表)dSSa bSSad SaSSabSdd问:(1) 该文法的拓广文法是: (2分)E’→E (1)E → E+T (2)E → T (3)T → T*F (4)T → F (5)F → (E) (6)F → i (7)(2)相映的LR(0)的DFA:(10分)(3)辩论与办理 (3分)① I1状态中有移进—规约辩论Follow(E’)={ $ } 没有含{ + }可办理移进—规约辩论② I2状态中有移进—规约辩论Follow(E)={ +,),$ } 没有含{ * }可办理移进—规约辩论③ I8状态中有移进—规约辩论Follow(E)={ +,),$ } 没有含{ * }可办理移进—规约辩论(4) SLR分解表 (5分)二、单项采用题(每小题2分,共20分)1.谈话是____C_A.末结符与非末结符的标记串的集中 B.非末结符标记串的集中 C.末结符标记串的集中 D.爆收式的集中2.编译步调分二阶段处事,前阶段完毕的处事是__C___A.词汇法分解、语法分解战代码劣化 B.代码死成、代码劣化战词汇法分解C.词汇法分解、语法分解、语义分解战中间代码死成D.词汇法分解、语法分解战代码劣化3.一个句型中称为句柄的是该句型的最左CA.句型 B.短语 C.间接短语 D.最左间接短语4.自效果识别的谈话是 DA.0型谈话 B.1型谈话 C.2型谈话 D.3型谈话5.自效果所完毕的任务是从字符串形式的源步调中辨别出一个个具备独力含意的最小语法单位即 BA.字符 B.单词汇 C.句子 D.句型6.对付应Chomsky四种文法的四种谈话之间的闭系是BA.L0L1L2L3 B.L3L2L1L0C.L3=L2L1L0 D.L0L1L2=L37.词汇法分解的任务是AA.辨别单词汇 B.分解句子的含意 C.辨别句子 D.死成目标代码8.时常使用的中间代码形式没有含DA.三元式 B.四元式 C.顺波兰式 D.语法树9.代码劣化的手段是CA.节省时间 B.节省空间 C.节省时间战空间 D.把编译步调举止等价接换10.代码死成阶段的主要任务是CA.把下档谈话翻译成汇编谈话 B.把下档谈话翻译成呆板谈话C.把中间代码变更成依好简曲呆板的目标代码D.把汇编谈话翻译成呆板谈话。
《编译原理》历年试题及答案
<编译原理>历年试题及答案一.(每项选择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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
河北科技大学200X—200X学年第X学期
《编译原理》考试试卷
学院班级姓名学号题号一二三四五六七八九总分
得分
一、简述编译程序的功能,并解释编译程序和解释程序的区别。
(8分)。
编译程序的功能:编译程序的功能是把高级语言写成的程序转换成汇编语言程序或机器语言程序。
编译程序和解释程序的区别:在计算机上执行一个高级语言程序,编译程序是首先通过编译程序把源程序翻译成机器语言程序,然后执行目标程序;解释程序是采用边翻译边执行的解释执行方式来执行高级语言程序。
二、将下列ε-自动机转化为非ε-自动机。
(10分)
解:
三、化简下列自动机。
(12分)
解:
化为确定自动机:
2和4等价,3和(4,5)等价
四、已知文法G[E]: E →E+T|T T →T*E|F F →(E)|i
试画出句型(T+i)*i+F 的语法树,并指出该句型的所有的短语,简单短语和句柄。
(10分)
语法树:
短语8个:1. (T+i)*i+F 2. (T+i)*i
3. (T+i)
4. T+i
5. T
6. 第一个i
7. 第二个i 8. F
简单短语4个:
T ;第一个i ;第二个i ;F 句柄1个:T
E
E + T
T
T * E
F F E ( ) + E T T
F i
T
F
i
五、已知文法G[Z]:Z→bMb
M→a|(L
L→Ma)
(1) 试写出文法G的LL矩阵。
(2) 试写出b(aa)b的LL分析过程。
(15分)解:
select(Z→bMb)={b}
select(M→a|(L)={a,(}
select(L→Ma))=first(M)={a,(}
六、设有文法定义:<实型变量说明>→real<标识符表>
<标识符表>→<标识符表>,i
<标识符表>→i
将该文法缩写后并拓广为G[S’]如下:
1. S’→ S
2. S→ r D
3. D→ D , i
4. D→ i
试判别G[S’]文法为SLR(1)文法,并写出该文法的SLR(1)矩阵。
(15分)解:
follow(S)=follow(S’)={#}
follow(S)∩{,}=φ
满足上述条件则可利用SLR(1)方法。
转化情况如下:
七、设有PASCAL过程说明段
PROCEDURE P(VAR X:real; Y:boolean);
CONST pai=3.14;
TYPE arr=ARRAY[1…10] OF integer;
VAR m:integer; a:arr;
BEGIN………………END
写出每个标识符的语义字。
(10分)
解:
八、试写出表达式a*(b+c)的逆波兰式(要求写出详细分析过程)。
(10分)解:
九、设有语句列
X:=X*Y+Z;
Y:=X*Y+Z;
Z:=X*Y-Z
试写出优化前和优化后的四元式中间代码(要求用值编码法完成优化过程)。
(10分)
优化前编码优化后
1. (*, X, Y, T1 ) (1, 2, 3) (*, X, Y, T1)
2. (+, T1, Z, T2 ) (3, 4, 5) (+, T1, Z, T2)
3. (:=, T2, -, X ) (5, 5) (:=, T2, -, X)
4. (*, X, Y, T3 ) (5, 2, 6) ( *, X, Y, T3)
5. (+, T3, Z, T4 ) (6, 4, 7) ( +, T3, Z, T4)
6. (:=, T4, -, Y ) (7, 7) (:=, T4, -, Y)
7. (*, X, Y, T5 ) (5, 7, 8) ( *, X, Y, T5)
8. (-, T5, Z, T6 ) (8, 4, 9) ( -, T5, Z, T6)
9. (:=, T6, -, Z ) (9, 9) (:=, T6, -, Z)。