编译原理样题2(有答案)

编译原理试题
计算机学院_____级班学号姓名
一选择题
1、编译原理各阶段工作都涉及 2 (第1章):
A.词法分析
B.表格管理
C.语法分析
D.语义分析
2、正则表达式R1和R2等价是指 3 (第4章)
A.R1和R2都是定义在一个字母表上的正则表达式
B.R1和R2中使用的运算符相同
C.R1和R2代表同一正则集
D.R1和R2代表不同正则集
3、在以下的语法分析中, 4 特别适合于表达式的分析。

(第5,6,7章)
A.LR分析
B.LL(1)分析
C.递归下降分析
D.算符优先分析
4、与(a|b)*(a|b)等价的正规式是 3 。

(第4章)
A.a*| b*
B.(ab)*(a|b)
C.(a|b)(a|b)*
D.(a|b)*
5、在语法制导翻译中不采用拉链回填技术的语句是 2 。

(第8章)
A.跳转语句
B.赋值语句
C.条件语句
D.循环语句
6、在属性文法中,终结符只具有 B 属性。

(第8章)
A.传递
B.继承
C.抽象
D.综合
7、过程的Display表中记录了_ 2 _____。

(第10章)
A. 过程的连结数据
B. 过程的嵌套层数
C. 过程的返回地址
D. 过程的入口地址
二判断题
1、最左归约也称为规范归约。

(第3章) 1
2、逆波兰法表示的表达式把运算对象放在运算符的后面。

(第8章) 0
3、同心集的合并有可能产生“归约/归约”冲突。

(第7章)1
4、DFA可以通过多条路径识别一个符号串。

(第4章)0
5、动态数组的存储空间在编译时就可完全确定。

(第10章)0
三填空题
1、词法分析所依循的是语言的文法;而中间代码生成所依循的是语义。

(第4,8章)
+
2、在LR(0)分析法中,若α,β∈V *且a ∈T V 则称“S →α.A ”为 待约 项目,称“S →α.a β”为 移进 项目。

(第7章)
3、规范规约每次规约的是句型的_____句柄_________。

(第6章)
4、无符号常数的识别和计算该常数的工作,通常在______词法______阶段完成的。

(第4章)
四、设字母表为{a,b}的语言L 的句子是满足下述条件的串:每个a 都有b 直接跟在右边。

构造该语言的正则式。

(第4章)
五、将下图的NFA 确定化为DFA,图中初态为X ,终态为Y 。

(第4章)
六、写一个2型文法G ,使得L(G)={a i+2b i |i>=0}∪{a i b i+2|i>=0}。

(第3章)
七、设文法G (S ):(第5章) S → S +aF|aF|+aF F → *aF|*a
(1)消除左递归和左因子;
(2)构造相应的FIRST 和FOLLOW 集合; (3)构造预测分析表。

八、对文法G[S]:S → aSb | P (第6章)
P → bPc | bQc Q → Qa | a
请构造简单优先关系表,该文法是否是简单优先文法?
九、设有以下程序段(第10章)
program main; var a,b:integer;
procedure p(x,y,z:integer); begin
y:=y*2; z:=z+x end ;
begin
a:=5; b:=2; p(a*b,a,a); write(a)
end.
对于下列参数传递方式,分别写出执行程序后a的输出值。

(1)传值;(2)传地址;(3)值结果;(4)传名。

十、文法G[S]及其LR分析表如下,请给出对串dada#的分析过程。

(第7章)
G[S]: 1) S →VdB2) V →e
3) V →ε 4) B →a
5) B →Bda 6) B →ε
十一、试将下述程序段翻译成三地址形式的中间代码表示。

(第8章) while ( a+b<c OR a=b )
while ( a<5 AND b<10 )
{
a=a+1;
b=b+1;
}
}
十二、将下面程序划分为基本块,并画出其程序流图。

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
L2: F:=F-1
goto L1
十三、对PL/0语言扩充单词-=和--: (第2章)
请完成下列识别单词‘-’,‘-=’和‘--’(设单词内码分别为MINUS,MINUSBECOME和MINUSMINUS)的词法分析算法:
if ( CH=='-' ) {
① ;
if ( ② ) {
SYM=MINUSBECOME;
GetCh();
}else if ( CH=='-' ) {

}else

}
答案
一选择题
b,c,d,c,b,d,b
二判断题
√×√××
三填空题
1、文法语义
2、待约项目移进项目
3、句柄
4、词法
四 (b|ab)*

解:用子集法确定化如下表
I I a I b状态
{X,0,1,3} {0,1,3}.. {2,3,Y}.. {1,3}.... {2,Y}.... {Y}....{0,1,3}
{0,1,3}
{1,3}
{1,3}
{2,3,Y}
{2,3,Y}
{Y}....
{2,Y}..
{Y}
....
-X
1
+2
3
+4
+Y
确定化后如下图
六解:文法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(S’)={+,ε } FOLLOW(S')={#}
FIRST(F)={*} FOLLOW(F)=(+,#)
FIRST(F')={*,ε} FOLLOW(+)={#}
(3)
八 Head(S)={a,P,b} Head(P)={b} Head(Q)={Q,a}
Tail(S)={b,P,c} Tail(P)={c} Tail(Q)={a}
(1)“=”关系: a=S S=b b=P P=c b=Q Q=c Q=a
(2)“<”关系: a<Head(S) b<Head(P) b<Head(Q) (3)“>”关系: Tail(S)>b Tail(P)>c Tail(Q)>a
S a b P Q c
S =
a = < > < < >
b < < > = = <
P > =
Q = =
c > >
九(1)5;(2)20;(3)15;(4)30。

步骤状态栈文法符号栈剩余输入符号动作
1 2 3 4 5 6 7 8 9 0
02
024
0245
0246
02467
024678
0246
01
#
#V
#Vd
#Vda
#VdB
#VdBd
#VdBda
#VdB
#S
dada#
dada#
ada#
da#
da#
a#
#
#
#
用V →ε归约
移进
移进
用B →a归约
移进
移进
用B →Bda 归约
用S →VdB 归约
接受
100: t:=a+b
101: if t<c goto 105
102: goto 103
103: if a=b goto 105
104: goto 112
105: if a<5 goto 107
106: goto 100
107: if b<10 goto 109
108: goto 100
109: a:=a+1
110: b:=b+1
111: goto 105
112:
GetCh();
CH=='='
SYM=MINUSMINUS
SYM=MINUS。

合集下载

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

编译原理期末试题(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.构造编译程序应掌握______。

《编译原理》样卷及答案

《编译原理》样卷及答案

一、简答题(每题4分,共24分)1、构造一个文法G,使得:L(G)={(m )m|m>0}解答:G[S]: s-> ()|(S)2、构造一个正规式,它接受 ={0,1}上符合以下规则的字符串:串内有且只有2个1的0、1字符串全体。

解答:0*10*10*3、消除文法G[S]中的直接左递归和回溯S→(L) | aS | aL→L,S | S解答:S→(L) | aS'S'→S | εL→S L'L'→,S L' | ε4、文法G[S]是乔姆斯基几型文法?S → ABS | ABAB → BAA → 0B → 1解答:1型文法/上下文有关文法5、按Thmopson算法构造与正则表达式(1*|0) * 等价的NFA。

解答:略6、设计一个状态转换图,其描述的语言规则为:如果以a开头,则其后是由a、b组成的任意符号串;如果以b开头,则其后是至少包含一个a的由a、b组成的任意符号串。

解答:略二、(本题10分)对于文法G[E]:E→ET+|TT→TF* | FF→F^ | a(1) 给出句子FF^^*的最左推导和语法树;(2) 给出句子FF^^*的短语、直接短语和句柄。

解答: (1) 2分:句子FF^^*的最左推导 2分:句子FF^^*的语法树E=>T=>TF*=>FF*=>FF^*=>FF^^*(2) 3分:句子FF^^*的短语FF^^*、FF^^*、F、F^、F^^2分:句子FF^^*的直接短语F、F^1分:句子FF^^*的句柄F三、(本题15分)构造与下列NFA等价的最小化DFA。

解答:(1)10分:构造与NFA等价的DFA(2)5分:对DFA最小化首先,将所有的状态集合分成子集: k1={0,1,2,4} k2={3,5}四、(本题15分)对下列文法G[S]:s→ eT | RTT→ DR | εR→ dR | εD→ a | bd(1) 写出文法G[S]每个非终结符的FIRST集和FOLLOW集;(2) 判断文法G[S]是否LL(1)文法(注:必须给出判断过程,否则不得分);(3) 写出文法文法G[S]的预测分析表。

编译原理试题及答案(二)

编译原理试题及答案(二)

试题6 解析
问题1
描述问题1的内容和答案。
问题2
描述问题2的内容和答案。
问题3
描述问题3的பைடு நூலகம்容和答案。
试题7 解析
语法树
了解如何构建和使用语法树。
代码优化
探索如何优化编译后的代码。
代码生成
学习将语法树转换为机器代码。
试题3 解析
1
扫描
通过扫描源代码来生成词法记号。
2
解析
将词法记号转换为语法树或抽象语法树。
3
优化
对生成的语法树进行优化和调整。
试题4 解析
问题 问题1 问题2 问题3
答案 答案1 答案2 答案3
试题5 解析
1 问题1
描述问题1的内容和答案。
3 问题3
描述问题3的内容和答案。
2 问题2
描述问题2的内容和答案。
编译原理试题及答案(二)
继续深入探索编译原理,使学习更加有趣和易懂。
试题1 解析
问题1
描述问题1的内容和答案。
问题2
描述问题2的内容和答案。
问题3
描述问题3的内容和答案。
试题2 解析
设计
了解编译器设计的基本原则和 流程。
语法分析
学习语法分析的算法和相关术 语。
词法分析
识别编程语言中的关键字、运 算符和标识符等。

编译原理教程课后习题答案第二章

编译原理教程课后习题答案第二章

第二章 词法分析2.1 完成下列选择题:(1) 词法分析器的输出结果是。

a. 单词的种别编码b. 单词在符号表中的位置c. 单词的种别编码和自身值d. 单词自身值(2) 正规式M1和M2等价是指。

a. M1和M2的状态数相等b. M1和M2的有向边条数相等c. M1和M2所识别的语言集相等d. M1和M2状态数和有向边条数相等(3) DFA M(见图2-1)接受的字集为。

a. 以0开头的二进制数组成的集合b. 以0结尾的二进制数组成的集合c. 含奇数个0的二进制数组成的集合d. 含偶数个0的二进制数组成的集合【解答】(1) c (2) c (3) d图2-1 习题2.1的DFA M2.2 什么是扫描器?扫描器的功能是什么?【解答】 扫描器就是词法分析器,它接受输入的源程序,对源程序进行词法分析并识别出一个个单词符号,其输出结果是单词符号,供语法分析器使用。

通常是把词法分析器作为一个子程序,每当词法分析器需要一个单词符号时就调用这个子程序。

每次调用时,词法分析器就从输入串中识别出一个单词符号交给语法分析器。

2.3 设M=({x,y}, {a,b}, f, x, {y})为一非确定的有限自动机,其中f 定义如下:f(x,a)={x,y} f {x,b}={y}f(y,a)=Φ f{y,b}={x,y}试构造相应的确定有限自动机M ′。

【解答】 对照自动机的定义M=(S,Σ,f,So,Z),由f 的定义可知f(x,a)、f(y,b)均为多值函数,因此M 是一非确定有限自动机。

先画出NFA M 相应的状态图,如图2-2所示。

图2-2 习题2.3的NFA M 用子集法构造状态转换矩阵,如表表2-1 状态转换矩阵1b将转换矩阵中的所有子集重新命名,形成表2-2所示的状态转换矩阵,即得到 M ′=({0,1,2},{a,b},f,0,{1,2}),其状态转换图如图2-3所示。

表2-2 状态转换矩阵将图2-3所示的DFA M ′最小化。

编译原理复习题有答案版

编译原理复习题有答案版

1、给出下面语言的相应文法。

L1={a n b n c i|n≥1,i≥0}答案:S→AB|BA→a|aAB→bBc|bc2.给出下面语言的相应文法L1={a n b n c m d m| m,n≥1,n为奇数,m为偶数}。

答案:文法G(S):S→ACA→aaAbb/abC→ccCcc/cc3、构造一个DFA,它接受 ={a,b}上所有包含ab的字符串。

(要求:先将正规式转化为NFA,再将NFA确定化,最小化)(一)相应的正规式为(a|b)*ab(a|b)*(二)①与此正规式对应的NFA为答案;在自己写的纸上4、对下面的文法G:E→TE’E’→+E|εT→FT’T’→T|εF→PF’F’→*F’|εP→(E)|a|b|∧(1)证明这个文法是LL(1)的。

考虑下列产生式:E’ ->E|εT’ ->T|εF’ ->*F’ |εP ->(E) |∧a|bFIRST(+E)∩FIRST(ε)={+}∩{ε}=φFIRST(+E)∩FOLLOW(E')={+}∩{#,)}=φFIRST(T)∩FIRST(ε)={(,a,b,^}∩{ε}=φFIRST(T)∩FOLLOW(T')={(,a,b,^}∩{+,),#}=φFIRST(*F')∩FIRST(ε)={*}∩{ε}=φFIRST(*F')∩FOLLOW(F')={*}∩{(,a,b,^,+,),#}=φFIRST((E))∩FIRST(a) ∩FIRST(b) ∩FIRST(^)=φ所以,该文法式LL(1)文法.计算这个文法的每个非终结符的FIRST和FOLLOW。

(8分)答案:FIRST(E)={(,a,b,^}FIRST(E')={+,ε}FIRST(T)={(,a,b,^}FIRST(T')={(,a,b,^,ε}FIRST(F)={(,a,b,^}FIRST(F')={*,ε}FIRST(P)={(,a,b,^}FOLLOW(E)={#,)}FOLLOW(E')={#,)}FOLLOW(T)={+,),#}FOLLOW(T')={+,),#}FOLLOW(F)={(,a,b,^,+,),#}FOLLOW(F')={(,a,b,^,+,),#}FOLLOW(P)={*,(,a,b,^,+,),#}(3)构造它的预测分析表。

编译原理自测(一、二、三)及答案

编译原理自测(一、二、三)及答案

编译原理自测一一、是非题(下列各题,你认为正确的,请在题干的括号内打“√”,错的打“×”。

每题1分,共5分)1、算符优先关系表不一定存在对应的优先函数。

A.正确B.不正确2、数组元素的地址计算与数组的存储方式有关。

A.正确B.不正确3、仅考虑一个基本块,不能确定一个赋值是否真是无用的。

A.正确B.不正确4、每个文法都能改写为LL(1)文法。

A.正确B.不正确5、对于数据空间的存贮分配,FORTRAN采用动态贮存分配策略。

A.正确B.不正确二、填空题1、从功能上说,程序语言的语句大体可分为两大类。

2、扫描器的任务是从3、所谓最右推导是指:(任何一步αβ都是对α中最右非终结符进行替换的)4、语法分析最常用的两类方法是5、一个上下文无关文法所含四个组成部分是(一组终结符号,一组非终结符号、一个开始符号、一组产生式)6、所谓语法制导翻译方法是(为每个产生式配上一个翻译子程序,并在语法分析的同时执行这些子程序)7、符号表中的信息栏中登记了每个名字的有关的性质,如8、一个过程相应的DISPLA Y表的内容为9、常用的两种动态存贮分配办法是配。

10、产生式是用于定义三、名词解释1.遍--指编译程序对源程序或中间代码程序从头到尾扫描一次。

2.无环路有向图(DAG)--如果有向图中任一通路都不是环路,则称庐有向图为无环路有向图,简称DAG。

3.语法分析--按文法的产生式识别输入的符号串是否为一个句子的分析过程。

4.短语--令G是一个文法。

S划文法的开始符号,假定αβδ是文法G的一个句型,如果有SαAδ且AB,则称β是句型αβ相对非终结符A的短语。

5.后缀式--一种把运算量写在前面,把算符写在后面的表示表达式的方法。

编译原理自测二一、是非题(下列各题,你认为正确的,请在题干的括号内打“√”,错的打“×”。

每题1分,共5分)1、一个LL(1)文法一定是无二义的。

A.正确B.不正确2、逆波兰法表示的表达式亦称前缀式。

编译原理一些习题答案

编译原理⼀些习题答案第2章形式语⾔基础2.2 设有⽂法G[N]: N -> D | NDD -> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9(1)G[N]定义的语⾔是什么?(2)给出句⼦0123和268的最左推导和最右推导。

解答:(1)L(G[N])={(0|1|2|3|4|5|6|7|8|9)+} 或L(G[N])={α| α为可带前导0的正整数}(2)0123的最左推导:N ? ND ? NDD ? NDDD ? DDDD ? 0DDD ? 01DD ? 012D ? 0123 0123的最右推导:N ? ND ? N3 ? ND3 N23 ND23 N123 D123 0123268的最左推导:N ? ND ? NDD ? DDD ? 2DDD ? 26D ? 268268的最右推导:N ? ND ? N8 ? ND8 ? N68 ? D68 ? 2682.4 写⼀个⽂法,使其语⾔是奇数的集合,且每个奇数不以0开头。

解答:⾸先分析题意,本题是希望构造⼀个⽂法,由它产⽣的句⼦是奇数,并且不以0开头,也就是说它的每个句⼦都是以1、3、5、7、9中的某个数结尾。

如果数字只有⼀位,则1、3、5、7、9就满⾜要求,如果有多位,则要求第1位不能是0,⽽中间有多少位,每位是什么数字(必须是数字)则没什么要求,因此,我们可以把这个⽂法分3部分来完成。

分别⽤3个⾮终结符来产⽣句⼦的第1位、中间部分和最后⼀位。

引⼊⼏个⾮终结符,其中,⼀个⽤作产⽣句⼦的开头,可以是1-9之间的数,不包括0,⼀个⽤来产⽣句⼦的结尾,为奇数,另⼀个则⽤来产⽣以⾮0整数开头后⾯跟任意多个数字的数字串,进⾏分解之后,这个⽂法就很好写了。

N -> 1 | 3 | 5 | 7 | 9 | BNB -> 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | B02.7 下⾯⽂法⽣成的语⾔是什么?G1:S->ABA->aA| εB->bc|bBc G2:S->aA|a A->aS解答:B ? bcB ? bBc? bbccB ? bBc? bbBcc ? bbbccc……A ?εA ? aA ? aA ? aA ? aaA ? aa……∴S ? AB ? a m b n c n , 其中m≥0,n≥1即L(G1)={ a m b n c n | m≥0,n≥1} S ? a S ? aA ? aaS ? aaaS ? aA ? aaS ? aaaA ?aaaaS ? aaaaa ……∴S ? a2n+1 , 其中n≥0即L(G2)={ a2n+1 | n≥0}2.11 已知⽂法G[S]: S->(AS)|(b)A->(SaA)|(a)请找出符号串(a)和(A((SaA)(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) 构造预测分析表。

编译原理习题及答案(整理后)

ቤተ መጻሕፍቲ ባይዱ
5、自下而上的语法分析中,应从 开始分析。 a. 句型 b. 句子 c. 以单词为单位的程序 d. 文法的开始符 e. 句柄 6、对正规文法描述的语言,以下 有能力描述它。 a.0型文法 b.1型文法 c.上下文无关文法 d.右线性文法 e.左线 性文法 三、填空题 1、文法中的终结符和非终结符的交集是 。词法分析器交给语法 分析器的文法符号一定是 ,它一定只出现在产生式的 部。 2、最左推导是指每次都对句型中的 非终结符进行扩展。 3、在语法分析中,最常见的两种方法一定是 分析法,另一是 分析法。 4、采用 语法分析时,必须消除文法的左递归。 5、 树代表推导过程, 树代表归约过程。 6、自下而上分析法采用 、归约、错误处理、 等四种操作。 7、Chomsky把文法分为 种类型,编译器构造中采用 和 文 法,它们分别产生 和 语言,并分别用 和 自动机识别所产 生的语言。 四、判断题 1、文法 S→aS|bR|ε描述的语言是(a|bc)* ( ) R→cS 2、在自下而上的语法分析中,语法树与分析树一定相同。 ( ) 3、二义文法不是上下文无关文法。 ( ) 4、语法分析时必须先消除文法中的左递归。 ( ) 5、规范归约和规范推导是互逆的两个过程。 ( ) 6、一个文法所有句型的集合形成该文法所能接受的语言。 ( ) 五、简答题 1、句柄 2、素短语 3、语法树 4、归约 5、推导 六、问答题 1、给出上下文无关文法的定义。 2、文法G[S]: S→aSPQ|abQ QP→PQ bP→bb
E E + F E + T P T i P #<·+·>+<·i·># 图2-8-1 句型P+T+I的语法及优先关系
6、选c。
7、由图2-8-1的语法树和优先关系可以看出应选b。

编译原理与技术期末考试模拟试题2及答案

编译原理与技术模拟试题二一、填空题(20分,每空2分)1.1LR(1)分析法中,L的含义是,R的含义是。

答案:自左至右扫描输入串,最右推导的逆解释:若为文法G构造的移进-归约分析表中不含多重定义的条目,则称G为LR(k)文法,分析器被称为是LR(k)分析器,它所识别的语言被称为LR(k)语言。

L表示从左到右扫描输入序列,R表示逆序的最右推导,k表示为确定下一动作向前看的终结符个数,一般情况下k<=1。

当k=1时,简称LR。

1.2源程序经过编译后产生的程序称为。

答案:目标程序解释:源程序经过编译后产生的程序称为目标程序。

1.3词法分析的输出由和两部分组成。

答案:单词种别,单词的值解释:根据构词规则识别称为源程序的输入序列,称为词法分析。

词法分析阶段是编译过程的第一阶段,这个阶段的任务是对源程序从前到后(从左到右)逐个字符地扫描,从中识别出一个个“单词”符号。

“单词”符号是程序设计语言的基本语法单位,如关键字(或称保留字)、标识符、常数、运算符和分隔符(如标点符号、左右括号)等。

词法分析程序输出的“单词”常以二元组的方式输出,即单词种别和单词自身的值。

1.4文法G:S→AB,A→aA|ε,B→bBc|bc描述的语言L(G)=。

答案:{a m b k c k|m>=1,k>=0}解释:通过推导进行分析。

1.5允许用户随意地动态申请与释放内存空间应采用存储分配技术。

答案:堆解释:编译器怎样对存储空间进行组织和采用什么样的存储分配策略,很大程度上取决于程序设计语言中所采用的机制。

编译器具体实现时,根据语言机制的特性,采用静态分配策略、栈分配策略和堆分配策略三种方式的其中若干种。

静态分配策略是指编译时安排所有数据对象的存储,即绑定是静态确定的;栈分配策略是指按栈的方式管理运行时的存储;堆分配策略是指在运行时根据要求从堆数据区动态地分配和释放存储。

1.6一个文法产生的_______________________称为该文法的语言。

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