编译原理习题答案

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

编译原理习题答案
1、正规文法又称DA、0型文法B、1型文法C、2型文法D、3型文法
2、对于无二义性的文法,规范归约是BA.最左推导B.最右推导的逆过程
C.最左归约的逆过程
D.最右归约的逆过程。

3、扫描器的任务是从源程序中识别出一个个单词符号
4、程序所需的数据空间在程序运行前就可确定,称为A管理技术。

A静态存储B动态存储C栈式存储D堆式存储5、编译过程中,语法分析器的任务是(B)。

①分析单词是怎样构成的
②分析单词串是如何构成语句和说明的③分析语句和说明是如何构成程序的④分析程序的结构
A、②③
B、②③④
C、①②③
D、①②③④
6、文法G:E→E+T|TT→T某P|PP→(E)|i
则句型P+T+i的句柄和最左素短语分别为B
A.指示器
B.临时变量
C.符号表
D.程序变量
8、程序语言的单词符号一般可以分为保留字、标识符、常数、运算符、界符等等。

9、下列B优化方法是针对循环优化进行的。

A.删除多余运算B.删除归纳变量C.合并已知量D.复写传播10、若文法G定义的语言是无限集,则文法必然是AA、递归的B、前后文无关的C、二义性的D、无二义性的
11、文法G产生的D的全体是该文法描述的语言。

A、句型
B、终结符集
C、非终结符集
D、句子
12、Chomky定义的四种形式语言文法中,0型文法又称为A文法;1型文法又称为C文法。

A.短语文法
B.上下文无关文法
C.上下文有关文法
D.正规文法A.短语文法B.上下文无关文法C.上下文有关文法D.正规文法13、语法分析最常用的两类方法是自顶向下和自底向上分析法。

14、一个确定的有穷自动机DFA是一个A
A五元组(K,∑,f,S,Z)B四元组(VN,VT,P,S)
C四元组(K,∑,f,S)D三元组(VN,VT,P)A、语法
B、语义
C、代码
D、运行
15、B不属于乔姆斯基观点分类的文法。

A、上下文无关文法
B、算符优先文法
C、上下文有关文法
D、正规文法16、一个文法所描述的语言是A;描述一个语言的文法是B
A.唯一的
B.不唯一的
C.可能唯一,可能不唯一A.唯一的B.不唯一的C.可能唯一,可能不唯一17、语法分析是依据语言的语法规则进行的,中
间代码产生是依据语言的等价变换规则进行的。

18、B不属于乔姆斯基观点分类的文法。

A上下文无关文法B算符优先文法C上下文有关文法D正规文法19、
过程调用时参数传递方式有A
(1)传地址(2)传值(3)传标识符(4)得结果(5)传名(6)返回值可选项有:
A、(1)(2)(4)(5)
B、(1)(2)(5)(6)
C、(1)(2)(3)(6)
D、
(2)(3)(4)(6)20、过程调用时参数传递方式有(1)传地址(2)传值(3)传标
识符(4)得结果(5)传名(6)返回值可选项有:
A、(1)(2)(4)(5)
B、(1)(2)(5)(6)
C、(1)(2)(3)(6)
D、(2)(3)(4)(6)
21、下列代码中D不可能是目标代码。

A、汇编指令代码
B、可重定位指令代码
C、绝对指令代码
D、中间代
码22、一张转换图只包含有限个状态,其中有一个被认为是初态,最多
只有一个终态。

BBA.正确B.不正确
23、有限自动机能识别CA.上下文无关文法B.上下文有关文法
C.正规文法D.短语文法。

24、汇编程序是将B程序改造成目标语言程序的翻译程序。

A机器语言B汇编语言C高级语言D低级语言25、LR(k)文法
___B____二义性的。

A、都是
26、乔姆斯基方法的2型语言是这样一种语言,其产生式限制为A27、局部优化是局限于一个C范围内的一种优化。

A.循环
B.函数
C.基本块
D.整个程序
28、目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。

A
A.正确
B.不正确
A、A→
B、A→a,A→aB
C、→β(||||)
D、→
B、都不是
C、不一定都是
29、乔姆斯基方法的3型语言是这样一种语言,其产生式限制为B
AA→BA→a或A→aBC→β(||||)D→30、运算符与运算对象类型不符
属于A
A、语法错误
B、语义错误
C、语用错误
D、规则集合
31、词法分析器的输入是B
A、词法记号
B、源程序
C、语法单位
D、目标程序
32、在下述的编译方法中,自底向上的方法有F,自顶向下的分析方
法有A
①简单优先分析②算符优先分析③递归下降分析④预测分析技术⑤LR (K)分析⑥SLR(k)分析⑦LL(k)分析⑧LALR(K)分析
A.③④⑦
B.③④⑧
C.①②⑧
D.③④⑤⑥⑦
E.①②⑤⑥⑦
F.①②⑤⑥⑧A.③④⑦B.③④⑧C.①②⑧D.③④⑤⑥⑦E.①②⑤⑥⑦F.①②⑤⑥⑧33、对于数据空间的存贮分配,FORTRAN采用动态贮存分配策略。

BA.正确B.不正确
34、算符优先分析法每次都是对C进行归约。

A句柄B短语C最左素短语D素短语35、编译时能进行的类型检查称为C
A、错误检查
B、动态检查
C、静态检查
D、随机检查
36、规范推导的每一步总是用产生式右边符号串替换句型中B位置的非终结符号A、最左B、最右C、最中D、任意
37、语法分析器的输入是单词符号流,其输出是分析树的某种表示
38、每个文法都能改写为LL(1)文法。

BA.正确B.不正确
39、对于无二义性的文法,规范推导是CA最左推导B最右推导的逆过程C最左归约的逆过程D最右归约的逆过程。

40、描述语言
L={ambn|n≥m≥1}的文法为D
A、Z→AbbC、Z→AbD、Z→aAb
41、间接三元式表示法的优点为A
A、采用间接码表,便于优化处理
B、节省存储空间,不便于表的修改
C、便于优化处理,节省存储空间
D、节省存储空间,不便于优化处理
A→aA|a
A→aAb|aA→Ab|aAb|ε
B→bB|b
B、Z→AB|bA→Aa|a
B→aBb|b
42、编译时能进行的类型检查称为C
A错误检查B动态检查C静态检查D随机检查43、文法G[S]:S→某
S某|y所识别的语言是AA、某ny某n(n≥0)B、(某y某)某C、某y某D、某某y某某
44、项目A→α·称为B,其中A∈VN,A不是开始符。

A、移进项目
B、归约项目
C、出错项目
D、接受项目
45、设有文法G[S]:S->S某S|S+S|(S)|a,该文法___A__二义性文法。

A、是
46、高级语言编译程序常用的语法分析方法中,LL分析法属于B分
析方法。

A、自左至右
B、自顶向下
C、自底向上
D、自右至左。

47、有文法G:E→E某T|TT→T+i|i句子2+5某3+3按该文法G
归约,其值为B
A23B42C30D17
48、高级语言编译程序常用的语法分析方法中,LL分析法属于B分析方法。

A自左至右B自顶向下C自底向上D自右至左。

49、形如A→α·Bβ的项目为A项目。

A、待约
B、移进
C、接受
D、规约
50、活动记录的连接数据不包括A
A、形参单元
B、动态链(老SP)
C、返回地址
D、全局Diplay地址
51、高级语言编译程序常用的语法分析方法中,lALR分析法属于C分析方法。

A、自左至右
B、自上而下
C、自下而上
D、自右至左
52、设a、b、c是文法的终结符,且满足优先关系a=b和b=c,则D
A.必有a=c
B.必有c=aC必有b=aD答案A~C都不一定成立53、词法分析器的输出是A
A、词法记号流
B、源程序
C、语法单位
D、目标程序
54、对一个基本块来说,A是正确的。

A、只有一个入口语句和一个出口语句
B、有一个入口语句和多个出口语句
C、有多个入口语句和一个出口语句
D、有多个入口语句和多个出口语句
55、词法分析所依据的是B
A语义规则B构词规则C语法规则D等价变换规则56、句型是由D推导出的符号串。

A、非终结符
B、终结符
C、任何符号
D、开始符号
B、不是
C、不一定
57、如果文法G是无二义的,则它的任何句子αAA、最左推导和最右推导对应的语法树必定相同B、最左推导和最右推导对应的语法树可能不同C、最左推导和最右推导必定相同
D、可能存在两个不同的最左推导,但它们对应的语法树相同58、算符优先文法与算符优先函数的关系的描述中正确的是(B)。

A、一个算符优先文法一定存在优先函数与之对应
B、一个算符优先文法可能存在多个优先函数与之对应
C、一个算符优先文法一定存在多个优先函数与之对应
D、一个算符优先文法一定存在有限对优先函数与之对应
59、一个句型中称为句柄的是该句型的最左DA非终结符B短语C句子D直接短语60、描述一个语言的文法是(B)
A、唯一的
B、不唯一的
C、可能唯一,也可能不唯一
61、下列C优化方法不是针对循环优化进行的。

A、强度削弱
B、删除归纳变量
C、删除多余运算
D、代码外提
62、更动一张A表很困难。

A三元式B间接三元式C四元式D三元式和四元式63、栈式存储分配申请和释放存储空间遵守BC原则。

A、先申请先释放
B、先申请后释放
C、后申请先释放
D、任意
64、所谓自上而下分析法是指65、所谓语法制导翻译方法是
66、确定的有穷自动机是一个五元组,通常表示为M=(S,∑,f,0,Z)
67、规范归约中的可归约串是指句柄;算符优先分析中的可归约串是
指最最左左素素短短语语
68、编译程序在逻辑上由词法分析、语语法法分分析析、语义分析、
中间代码生成、代码优化和目标代码生成六部分组成。

69、D不可能是目
标程序。

A、汇编语言模块
B、可重定位目标模块
C、可执行目标模块
D、中间
代码70、如果一个文法存在某个句子对应两棵不同的语法树,则称这个
文法是二义的
71、一个名字的属性包括继承属性和综合属性72、正规式的“某”
读作星闭包
73、编译程序在逻辑上由、、语义分析、中间代码生成、代码优化和
目标代码生成六部分组成。

74、编译程序的各个阶段的工作都涉及到符号表管理和错误处理75、文法用来描述语言的语法结构,它由如下4个部分组成:文法终结符集合、文法非终结符集合、D和文法开始符号。

A、单词集合
B、字母数字串
C、文法句子集合
D、文法产生式的集合
76、确定的有穷自动机是一个元组,通常表示为77、已知文法G[E]:
E→E+T|TT→T某F|FF→(E)|id
该文法终结符集合VT=,文法非终结符集合VN=,该文法在乔姆斯基(Chomky)文法分类属于2文法。

78、编译程序的各个阶段的工作都涉及到和79、假设G是一个文法,S是文法开始符号,如果S某>某,则称某是该文法的一
80、如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是81、优化时,节省一条指令MOVRi,M,节省的指令代价为C
A、0B、1C、2D、3
82、采用LL(1)语法分析时,必须消除文法的左递归。

83、在状态转换图中,结点代表状态,用圆圈表示。

84、若源程序是高级语言编写的,目标程序是机器语言或汇编语言的程序,则相应的翻译程序称为编译程序。

85、常用的两种动态存贮分配办法是栈式分配和堆式分配。

86、翻译方案和语法制导定义不同的是它的语义动作(而不叫语义规则)放在括号{}内,并且可以插在产生式右部的任何地方
87、如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是
88、所谓最左推导是指:
89、上下文无关文法的可以用四元组表示,其形式为G=(VN,VT,S,P)
90、后缀式ab+c+d某e-所表达的式子为(a+b+c)某d-e
91、常用的两种动态存贮分配办法是分配和分配。

92、LL(K)文法中,第一个L表示从左到右扫描输入串,第二个L表
示产生最左推导,K表示在决定语法分析器每步动作时向前看K 个输入符
93、一个上下文无关文法所含四个组成部分是文法终结符集合文法非
终结符集合开始符号产生式有限集合
94、对于文法G,仅含终结符号的句型称为句子95、设有文法G[E]:E→E+T|E–T|TT→T某F|T/F|FF→(E)|i
该文法句型E+T某F的句柄是T某F
96、后缀式ab+c+d某e-所表达的式子为
97、文法符号的属性有两种,一种称为继承属性,另一种称为综合属性,S属性定义是指仅使用综合属性的语法制导定义。

98、LR(0)项目和LR(1)项目的区别在于是否有搜索符
99、紧跟在条件转移语句后面的语句是基本块的入口语句。

100、若二个正规式所表示的DFA(或正规集)相同,则认为二者是
等价的。

101、仅含终结符的句型称为
(F)
103、规范归约和规范推导是互逆的两个过程。

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

(F) 102、编译方式与解析程序的根本区别在于是否生成目标代码。

105、逆波兰表示法表示表达式时无需使用括号。

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

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

(F)
108、代码生成器的输入包括中间代码和符号表中的信息。

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

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

(T)
111、无左递归的文法是LL(1)文法。

(F)
112、一个句型的直接短语语是唯一的。

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

(F)
114、对任何一个编译程序来说,产生中间代码是不可缺少的一部分。

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

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

(F) 117、一个文法所有句子的集合构成该文法定义的语言。

(T)
118、优化实质上是对代码进行等价变换,变换后的代码结构不同但
运行结果相同。

(T)
119、算符优先分析法是一种规范归约分析法。

(F)
120、非终结符可以有综合属性,但不能有继承属性。

(F)
121、所有LR分析器的总控程序都是一样的,只是分析表各有不同。

(T)
122、因名字都是用标识符表示的,故名字与标识符没有区别(F)
123、空符号串的集合{ε}={}=(F)
124、非终结符可以有综合属性,但不能有继承属性。

(F)
125、终结符可以有综合属性,也可以有继承属性。

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

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

(F)
129、DAG是一个可带环路的有向图。

(F)
130、设有符号串某和y,把y的符号写在某的符号之后所得的符号串,叫做某与y的连接,记为某y。

(T)131、对任何一个编译程序来说,产生中间代码是不可缺少的一部分。

(F)132、对任何正规表达式e,都存在一个DFAM,满足L(M)=L(e)。

(T)
133、运行时的DISPLAY表的内容是什么?它的作用是什么?
答:内容:1、过程R的现行活动记录的地址(p的现值)2、R的外层Q的最新活动记录的地址3、Q的外层即主程序P的活动记录的地址作用:跟踪每个外层的最新活动记录的位置
134、何谓局部优化、循环优化和全局优化?优化工作在编译的哪个阶段进行?
答:局部优化:在基本快内的优化。

循环优化:对循环中的代码进行优化。

全局优化:整个程序范围内的优化。

在中间代码优化阶段。

答:1、静态分配策略适用于无动态申请内存、无可变体积数组、无递归调用的程序语言(如Fortran)2、动态分配策略2.1栈式动态分配2.1.1简单栈式分配适用于没有分程序结构、不允许程序嵌套定义但允许过程递归调用、允许过程含可变数组的语言2.1.2嵌套过程语言的栈式分配适用于没有分程序结构、允许程序嵌套定义和过程递归调用、允许过程含可变数组的语言2.2堆式动态分配适用于允许程序为变量在运行时动态申请和释放存储空间的语言
136、下面文法是否是二义文法?试说明理由。

G[S]:S→SaS|答:二义
137、已知文法G(E)E→T|E+TT→F|T某FF→(E)|i
(1)给出句型(T某F+i)的最右推导及画出语法树;(2)给出句型(T 某F+i)的短语、素短语。

1)E→E+T→E+i→T+i→T某F+I树略2)短语:T某F+iT某Fi素短语:T某Fi
138、把算术表达式-(a+b)某(b+c)翻译成:
答:1、DFA弧上不允许有ε出现,NFA允许2、DFA中每个状态S和输入符号a最多有一条边离开S,NFA有多条3、NFA可以有多个初态,DFA只有一个
140、设已构造出文法G(S):SS(S)S
的LR分析表如下
状态
01234567ACTION(r2S2r2S4r2r1S4r1)r2S5r2S7r1#r2Accr1GOTOS136假定
输入串为()(),请给出LR分析过程(即状态,符号,输入串的变化过程)。

步骤状态符号输入串步骤12345678910
141、对符号表的基本操作有几种,分别是什么?
答:5类。

1、填写名称2、查找名字3、访问信息4、填写修改信息5、删除(或者:4类。

建立、插入、查找、删除)
142、给定代码段如下,求出按四种不同方式进行参数传递后,变量
a的值…
procedureP(w,某,y,z);begin
y:=y某w;z:=z+某;endbegin
a:=5;b:=3;P(a+b,a-b,a,a);write(a);end
状态0010120223012350101202230123501符号SS(S(S()SS(S(SS(S)S
输入串()()$()()$)()$)()$()$()$)$)$$$
传值:5传地址:42得结果:7传名:77
143、目标代码有哪几种形式?生成目标代码时通常应考虑哪几个问题?
答:1、汇编语言2、机器语言又可分为a可立即执行的机器语言b
可重定位的机器语言需要考虑:1.、如何使生成的目标代码最短2、如何
分配寄存器的使用
144、下面的推导Srm…rmAbwrmlbw中,最后一步用的是Al,分别指
出LL(1)方法和LR(1)方法在扫描到此句型的什么位置决定用此产生式?(5分)P79答:LL(1)扫描到l的时候决定用此产生式;LR(1)扫描到
b的时候决定使用次产生式
145、构造一个最简DFA,它接受正规式ab(a|b)某。

给出文法G[S]:S→SaA|AA→AbB|BB→cSd|e
(1)证实AacAbcBaAdbed是文法G[S]的一个句型;(2)请写出该句型
的所有短语、素短语以及句柄。

答:1)这里用最右推导表示,省略树
S→SaA→SaB→SacSd→SacAd→SacAbBd→SacAbed→SacAbBbed→SacAbcSd bed→SacAbcSaAdbed→SacAbcAaAdbed→SacAbcBaAdbed→AacAbcBaAdbed2)短语:AacAbcBaAdbedcAbcBaAdbedAbcBaAdbeAbcBaAdcBaAdBaAeA素短语:BaAe句柄:A
146、写出表达式a+b某(c-d)对应的逆波兰表示、三元式三地址代码
序列和抽象语法树。

147、什么是活动记录?它主要由哪些内容构成?148、对下列四元式
序列生成目标代码(10分)T=A-BS=C+DW=E-FU=W/TV=U某S
其中,V是基本块出口的活跃变量,R0和R1是可用寄存器。


MOVR0,ASUBR0,BMOVR1,AADDR1,DMOVS,R1MOvR1,ESUBR1,FDIVR1,
R0MULR1,S
149、设有如下的三地址码(四元式)序列:
ReadNI∶=NJ∶=2
————————L1:ifI≤JgotoL3————————L2:I∶=I-J ifI>JgotoL2
————————
ifI=0gotoL4
————————
J∶=J+1I∶=NgotoL1
————————L3:Print′YES′
Return
————————
L4:Print′NO′
Return(1)、对题中代码划分基本块,并给每个基本块一个序号(2)、画出基本块集合的控制流图,每个基本块就用(1)小题中的序号表示。

(3)、若有循环的话,列出构成每个循环的结点。

150、已知文法G(V):V→N|N[E]
E→V|V+E
N→i(1)给出与G(V)等价的LL(1)文法G'(V);
V→NV’V’→[E]|εE→VE’E’→+E|εN→i(2)求文法G'(V)的每个非终结符的FIRST集合和FOLLOW集合;Firt(V)={i}Firt(V’)={[,ε} Firt(E)={i}Firt(E’)={+,ε}Firt(N)={i}
Follow(V)={$,+,]}Follow(V’)={$,+,]}Follow(E)={]}Follow(E’) ={]}Follow(N)={[,$,+}
(3)构造文法G'(V)的LL(1)分析表。

VV’+V’→ε[V’→[E]]V’→εiV→NV’$V’→εEE’N
E’→+EE’→εE→VE’N→i
151、考虑下面的三地址语句序列:b:=1b:=2ifw<=某gotoL2————————e:=bgotoL2————————L1:gotoL3————————
L2:c:=3b:=4c:=6
————————L3:ify<=zgotoL4————————gotoL5————————L4:g:=g+1h:=8gotoL1————————L5:h:=9
(1)、在该代码中用水平的横线将代码分成基本块,并给每个基本
块一个序号。

(2)、画出该代码的控制流图,每个基本块就用(1)小题
中的序号表示。

(3)、若有循环的话,列出构成每个循环的结点。

152、对于文法G(S):
SbMbM(L|aLMa)(1)写出句型b(Ma)b的最右推导并画出分析树。

S→bMb→b(Lb→b(Ma)b
(2)写出上述句型的短语,直接短语和句柄。

短语:b(Ma)b(Ma)Ma)句柄:Ma)153、LL(1)分析法对文法有哪些要求?
对文法中任意A→α|β型产生式需满足:Firt(α)∩Firt(β)=空集若β=>ε则Firt(α)∩Follow(A)=空集
154、写出语句a:=b某(-c)+b某(-c)的后缀式、抽象语法树、DAG图、四元式三地址代码和三元式三地址代码。

155、设有文法G[A]:A→iB某eB→SB|εS→[eC]|.iC→eC|ε
判定该文法是否为LL(1)文法?若是则给出它的LL(1)分析表,否则说明理由。

(20
分)Firt(A)={i}Firt(B)={[,ε,.}Firt(S)={[,.}Firt(C)={e,ε} Follow(A)={$}Follow(B)={某}Follow(S)={某}Follow(C)={]}对产生式B→SB|ε
Firt(SB)=Firt(S)={[,.}Firt(ε)={ε}所以Firt(SB)∩Firt(ε)=空集Firt(SB)∩Follow(B)=空集对产生式S→[eC]|.i
Firt([eC])={[}Firt(.i)={.i}所以Firt([eC])∩Firt(.i)=空集对产生式C→eC|ε
Firt(eC){e}Firt(ε)={ε}所以Firt(eC)∩Firt(ε)=空集
Firt(eC)∩Follow(C)=空集所以此文法是LL(1)文法ABSC.S→.i某
i[]eC→eC$A→iB某eB→SBB→εB→SBS→[eC]C→|ε
156、构造一个DFA,它接受∑={0,1}上能被5整除的二进制数。

157、正规式(0|1)某和((|0)1某)某是否等价,说明理由。

158、写出字母表={a,b}上语言L={w|w的最后两个字母是aa或bb}的正规式,并画出接受该语言的最简DFA。

(a|b)某aa|bb159、文法G(S)及其LR分析表如下,请给出串baba$的分析过程。

(1)S→DbB(4)B→a
(2)D→d
(3)D→ε(6)B→ε
(5)B→Bba
LR分析表
012345678ACTIONbr34r2r6r47r5d3aS5S8$accr6r4r1r5GOTOS1B6D2 (注:答案格式为步骤栈步骤123456789栈
00D20D2b40D2b4a50D2b4B60D2b4B6b70D2b4B6b7a80D2b4B60S1输入串动作)输入串动作)按B→ε规约移进移进按B→a规约移进移进按B→Bba规约
按S→DbB规约接受baba$baba$aba$ba$ba$a$$$$
160、已知文法G(A):A→aABl|a
B→Bb|d
(1)消除文法中的左递归,提取公共左因子,给出与G(A)等价的LL(1)文法G'(A);(2)求文法G'(A)的每个非终结符的FIRST集合和FOLLOW集合;(3)构造文法G'(A)的LL(1)分析表。

答:1)A→aA’A’→ABl|εB→dB’B’→bB’|ε
2)Firt(A)={a}Firt(B)={d}Firt(A’)={a,ε}Firt(B’)={b,ε}Foll ow(A)={$,d}Follow(B)={l}Follow(A’)={$,d}Follow(B’)={l}3)abld$A A→aA’A’→ABlA’→εA’→εA’BB’→bB’B’→εB’161、设文法
G(S):
S→S+aF|aF|+aFF→某aF|某a
(1)消除左递归和回溯;
(2)计算每个非终结符的FIRST和FOLLOW;(3)构造预测分析表。


1、S→+aFS’|aFS’S’→+aFS’|εF→某aF’F’→F|ε
2、
Fit(S)={a,+}Fit(S’)={+,ε}Fit(F)={某}Fit(F’)={某,ε}Follow(S)= {$}Follow(S’)={$}Follow(F)={$,+}Follow(F’)={$,+}3、+a某
$SS→+aFS’S→aFS’S’S’→+aFS’S’→εFF→某
aF’F’F’→εF’→FF’→ε
162、构造下面文法的LL(1)分析表。

DTLTint|realLidRR,idR|(10分)intrealid,$DDTLDTLTTintTrealLLidRRR,idRR
163、已知文法G(S):
S→a|(T)T→T,S|S
给出该文法的优先关系表,并计算出该优先关系表所对应的优先函数。

答:(算符优先的大于小于等于都带点,在此省
略)Firtvt(S)={a,(}Firtvt(T)={,,a,(}Latvt(S)={a,)}Latvt(T)={,,a ,)}画表
T—>T,S,<Firtvt(S)Latvt(T)>,T—>T,S—>S,SLatvt(S)>,S—
>(T)(<Firtvt(T)Latvt(T)>)
S—>(T)—>(S)(<Firtvt(S)Latvt(S)>)
a,()$
164、处于/某和某/之间的串构成注解,注解中间没有某/。

画出接受
这种注解的DFA的状态转换图。

(10分)
165、已知文法G(S)S→a|∧|(T)T→T,S|S
写出句子((a,a),a)的移进-归约分析过程及每一次归约的句柄。

(10分)初始状态如下,请接着往下进行分析。

栈输入动作句柄$((a,a),a)$栈
$$($(($((a$((S$((T$((T,$((T,a$((T,S$((T$((T)$(S$(T$(T,$(T,a$(T,S $(T$(T)$S输入((a,a),a)$(a,a),a)$a,a),a)$,a),a)$,a),a)$,a),a)$a),a)$),a)$),a)$),a)$,a)$,a)$,
a)$a)$)$)$)$$$动作移进移进移进按S→a规约按T→S规约移进移进按
S→a规约按T→T,S规约移进按S→(T)规约按T→S规约移进移进按
S→a规约按T→T,S规约移进按S→(T)规约接受句柄
aSaT,S(T)SaT,S(T)166、接受文法
SAa|bAc|dc|bdaAd
活前缀的DFA见下图。

请根据这个DFA来构造该文法的SLR(1)分析表,并说明该文法为什么不是SLR(1)文法。

(10分)
S’.SS.AaS.bAcS.dcS.bdaA.dI0d
Sd.cAd.I4
0)S‘S1)SAa2)SbAc3)Sdc4)Sbda5)Ad012345678910
aS5r5S10/r5r1r3SAS’S.I1SA.aI2Sb.AcSb.daA.dI3Sdc.I8aSAa.I5Sb A.cI6Sbd.aAd.I7cSbAc.I9Sbda.I10bAdacactionbS3cr5/S8S9r5r1r3dS4S7 $accr0r2gotoS1A26考察既含有归约项目又含有移进项目的项目集如
I4Sd.c移进项目Ad.归约项目
Follow(A)={a,c}∩{c}≠空集所以此文法不是SLR(1)文法。

相关文档
最新文档