编译原理期末总复习_第1页
编译原理期末总复习_第2页
编译原理期末总复习_第3页
编译原理期末总复习_第4页
编译原理期末总复习_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第八节 习题一、单项选择题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词法

2、规则7、词法分析器的输入是 。 a单词符号串b源程序 c语法单位d目标程序8、中间代码生成时所遵循的是- 。 a语法规则b词法规则 c语义规则d等价变换规则9、编译程序是对 。 a汇编程序的翻译b高级语言程序的解释执行 c机器语言的执行d高级语言的翻译10、语法分析应遵循 。 a语义规则b语法规则 c构词规则d等价变换规则解答1、将编译程序分成若干个“遍”是为了使编译程序的结构更加清晰,故选b。2、构造编译程序应掌握源程序、目标语言及编译方法等三方面的知识,故选d。3、对编译而言,变量既持有左值又持有右值,故选c。4、编译程序打交道最多的就是各种表格,因此选d。5、目标代码包括汇编指令代码、可

3、重定位指令代码和绝对指令代码3种,因此不是目标代码的只能选d。6、词法分析遵循的是构词规则,语法分析遵循的是语法规则,中间代码生成遵循的是语义规则,并且语义规则可以定义一个程序的意义。因此选a。 7、b 8、c 9、d 10、c二、多项选择题1、编译程序各阶段的工作都涉及到 。 a语法分析b表格管理c出错处理 d语义分析e词法分析2、编译程序工作时,通常有 阶段。 a词法分析b语法分析c中间代码生成 d语义检查e目标代码生成解答1b、c 2. a、b、c、e三、填空题 1、解释程序和编译程序的区别在于 。2、编译过程通常可分为5个阶段,分别是 、语法分析 、代码优化和目标代码生成。3、编译程序

4、工作过程中,第一段输入是 ,最后阶段的输出为 程序。4、编译程序是指将 程序翻译成 程序的程序。解答 是否生成目标程序 2、词法分析 中间代码生成 3、源程序目标代码生成4、源程序 目标语言一、单项选择题1、文法g:sxsx|y所识别的语言是 。a. xyxb. (xyx)*c. xnyxn(n0)d. x*yx*2、文法g描述的语言l(g)是指 。a. l(g)=|s , vt*b. l(g)=|s, vt*c. l(g)=|s,(vtvn*)d. l(g)=|s, (vtvn*)3、有限状态自动机能识别 。a. 上下文无关文法b. 上下文有关文法c.正规文法d. 短语文法4、设g为算符优先

5、文法,g的任意终结符对a、b有以下关系成立 。a. 若f(a)g(b),则abb.若f(a)g(b),则ag)(b)或f(a)g(b)并不能判定原来的a与b之间是否存在优先关系:故选c。5、如果文法g无二义性,则最左推导是先生长右边的枝叶:对于d,如果有两个不同的是了左推导,则必然有二义性。故选a。6、选c。7、由图2-8-1的语法树和优先关系可以看出应选b。ee + fe + t pt ip #+#图2-8-1 句型p+t+i的语法及优先关系8、规范推导是最左推导,故选d。9、由tt,和t( 得firstvt(t)=(,,); 由ts得firstvt(s)firstvt(t),而firstv

6、t(s)=b,(;即 firstvt(t)=b,(,,; 因此选c。 10、d 11、c 12、b 13、b 14、b二、多项选择题1、下面哪些说法是错误的 。a. 有向图是一个状态转换图b. 状态转换图是一个有向图c.有向图是一个dfad.dfa可以用状态转换图表示2、对无二义性文法来说,一棵语法树往往代表了 。a. 多种推导过程b. 多种最左推导过程c.一种最左推导过程d.仅一种推导过程e.一种最左推导过程3、如果文法g存在一个句子,满足下列条件 之一时,则称该文法是二义文法。a. 该句子的最左推导与最右推导相同b. 该句子有两个不同的最左推导c. 该句子有两棵不同的最右推导d. 该句子有

7、两棵不同的语法树 e.该句子的语法树只有一个4、有一文法g:sab aaab| bcbd|它不产生下面 集合。a. anbmcndm|n,m0b. anbncmdm|n,m0c. anbmcmdn|n,m0d. anbncmdm|n,m0e. anbncndn|n05、自下而上的语法分析中,应从 开始分析。a. 句型b. 句子c. 以单词为单位的程序d. 文法的开始符e. 句柄6、对正规文法描述的语言,以下 有能力描述它。a.0型文法b.1型文法 c.上下文无关文法 d.右线性文法 e.左线性文法解答 1、e、a、c 2、a、c、e 3、b、c、d 4、a、c 5、b、c 6、a、b、c、d、

8、e 三、填空题1、文法中的终结符和非终结符的交集是 。词法分析器交给语法分析器的文法符号一定是 ,它一定只出现在产生式的 部。2、最左推导是指每次都对句型中的 非终结符进行扩展。3、在语法分析中,最常见的两种方法一定是 分析法,另一是 分析法。4、采用 语法分析时,必须消除文法的左递归。5、 树代表推导过程, 树代表归约过程。6、自下而上分析法采用 、归约、错误处理、 等四种操作。 7、chomsky把文法分为 种类型,编译器构造中采用 和 文法,它们分别产生 和 语言,并分别用 和 自动机识别所产生的语言。解答 1、空集 终结符 右 2、最左 3、自上而上 自下而上 4、自上而上 5、语法

9、分析 6、移进 接受 7、4 2 型 3型 上下文无关语言 正规语言 下推自动机 有限四、判断题1、文法 sas|br|描述的语言是(a|bc)* ( ) rcs2、在自下而上的语法分析中,语法树与分析树一定相同。 ( )3、二义文法不是上下文无关文法。 ( )4、语法分析时必须先消除文法中的左递归。( )5、规范归约和规范推导是互逆的两个过程。( )6、一个文法所有句型的集合形成该文法所能接受的语言。( )解答 1、对 2、错 3、错 4、错 5、错 6、错五、简答题1、句柄2、素短语3、语法树4、归约5、推导解答 1、句柄:一个句型的最左直接短语称为该句型的句柄。2、素短语:至少含有一个终

10、结符的素短语,并且除它自身之外不再含任何更小的素短语。3、语法树:满足下面4个条件的树称之为文法gs的一棵语法树。每一终结均有一标记,此标记为vnvt中的一个符号;树的根结点以文法gs的开始符s标记;若一结点至少有一个直接后继,则此结点上的标记为vn中的一个符号;若一个以a为标记的结点有k个直接后继,且按从左至右的顺序,这些结点的标记分别为x1,x2,xk,则ax1,x2,xk,必然是g的一个产生式。4、归约:我们称直接归约出a,仅当a 是一个产生式,且、(vnvt)*。归约过程就是从输入串开始,反复用产生式右部的符号替换成产生式左部符号,直至文法开始符。5、推导:我们称a直接推出,即a,仅当

11、a 是一个产生式,且、(vnvt)*。如果12n,则我们称这个序列是从1至2的一个推导。若存在一个从1n的推导,则称1可推导出n。推导是归约的逆过程。六、问答题1、给出上下文无关文法的定义。解答一个上下文无关文法g是一个四元式(vt,vn,s, p),其中:vt是一个非空有限集,它的每个元素称为终结符号;vn是一个非空有限集,它的每个元素称为非终结符号,vtvn=;s是一个非终结符号,称为开始符号;p是一个产生式集合(有限),每个产生式的形式是p,其中,pvn,(vtvn)*。开始符号s至少必须在某个产生式的左部出现一次。 2、文法gs: saspq|abq qppq bpbb bqbc cq

12、cc(1)它是chomsky哪一型文法?(2)它生成的语言是什么?解答 (1)由于产生式左部存在终结符号,且所有产生式左部符号的长度均小于等于产生式右部的符号长度,所以文法gs是chomsky1型文法,即上下文有关文法。(2)按产生式出现的顺序规定优先级由高到低(否则无法推出句子),我们可以得到: sabqabc saspqaabqpqaabpqqaabbqqaabbcqaabbcc saspqaaspqpqaaabqpqpqaaabpqqpqaaabpqpqqaaappqqqaaabbpqqqaaabbqqqaaabbbcqqaaabbbccqaaabbbccc 于是得到文法gs生成的语言l

13、=anbncn|n13、按指定类型,给出语言的文法。l=aibj|ji1的上下文无关文法。【解答】(1)由l=aibj|ji1知,所求该语言对应的上下文无关文法首先应有sasb型产生式,以保证b的个数不少于a的个数;其次,还需有ssb或sbs型的产生式,用以保证b的个数多于a的个数;也即所求上下文无关文法gs为:gs:sasb|sb|b4、有文法g:saacb|bdaaab|cbbsca|b(1)试求句型aaabcbbdcc和aacbbdcc的句柄;(2)写出句子acabcbbdcc的最左推导过程。【解答】(1)分别画出对应两句型的语法树,如图2-8-2所示句柄:aab bd sa a c b

14、 aab b s c ab d cb(a)s a a c bb s c ab d c(b)图2-8-2 语法树(2)句子acabcbbdcc的最左推导如下: saacbaaabcbacabcbacabcbacabcbscaacabcbbdca acabcbbdcaacabcbbdcc 5、对于文法gs: s(l)|as|a ll, s|s(1)画出句型(s,(a)的语法树。(2)写出上述句型的所有短语、直接短语、句柄和素短语。s( l )l , ss ( l ) s a图2-8-3 句型(s,(a)的语法树【解答】(1)句型(s,(a)的语法树如图2-8-3所示(2)由图2-8-3可知:短语:

15、s、a、(a)、s,(a)、(s,(a);直接短语:a、s;句柄:s;素短语:素短语可由图2-8-3中相邻终结符之间的优先关系求得,即;# (,(a ) ) #因此素短语为a。6、考虑文法gt:tt*f|fffp|pp(t)|itt * ff pp ( t )t * f图2-8-4 句型t*p(t*f)的语法树证明t*p(t*f)是该文法的一个句型,并指出直接短语和句柄。【解答】首先构造t*p(t*f)的语法树如图2-8-4所示。由图2-8-4可知,t*p(t*f)是文法gt的一个句型。直接短语有两个,即p和t*f;句柄为p。一、单项选择题1、词法分析所依据的是 。a. 语义规则b. 构词规则

16、c. 语法规则d. 等价变换规则2、词法分析器的输出结果是 。a. 单词的种别编码b. 单词在符号表中的位置c. 单词的种别编码和自身值d. 单词自身值3、正规式m1和m2等价是指 。a. m1和m2的状态数相等b. m1和m2的有向弧条数相等c. m1和m2所识别的语言集相等 d. m1和m2状态数和有向弧条数相等4、状态转换图(见图3-6-1)接受的字集为 。 0 1 0图3-6-1yxa. 以 0开头的二进制数组成的集合 b. 以0结尾的二进制数组成的集合c. 含奇数个0的二进制数组成的集合 d. 含偶数个0的二进制数组成的集合5、词法分析器作为独立的阶段使整个编译程序结构更加简洁、明确

17、,因此, 。a. 词法分析器应作为独立的一遍 b. 词法分析器作为子程序较好c. 词法分析器分解为多个过程,由语法分析器选择使用 d. 词法分析器并不作为一个独立的阶段解答 1、b 2、c 3、c 4、d 5、b二、多项选择题1、在词法分析中,能识别出 。a. 基本字b. 四元式c. 运算符d. 逆波兰式e. 常数2、令=a,b,则上所有以b开头,后跟若干个ab的字的全体对应的正规式为 。a. b(ab)*b. b(ab)+c.(ba)*bd. (ba)+be. b(a|b)解答 1、a、c、e 2、a、b、d三、填空题1、确定有限自动机dfa是 的一个特例。2、若二个正规式所表示的 相同,则

18、认为二者是等价的。3、一个字集是正规的,当且仅当它可由 所 。解答 1、nfa 2、正规集 3、dfa(nfa)所识别四、判断题1、一个有限状态自动机中,有且仅有一个唯一终态。( )2、设r和s分别是正规式,则有l(r|s)=l(r)|l(s)。( )3、自动机m和m的状态数不同,则二者必不等价。( )4、确定的自动机以及不确定的自动机都能正确地识别正规集。( )5、对任意一个右线性文法g,都存在一个nfa m,满足l(g)=l(m)。( )6、对任意一个右线性文法g,都存在一个dfa m,满足l(g)=l(m)。( )7、对任何正规表达式e,都存在一个nfa m,满足l(g)=l(e)。(

19、)8、对任何正规表达式e,都存在一个dfa m,满足l(g)=l(e)。( )解答 1 、2、3、错 4、5、6、7、8、正确五、基本题1、设m(x,y, a,b, f,x,y)为一非确定的有限自动机,其中f定义如下:f(x,a)x,y f(x,b)yf(y,a) f(y,b)x,y 试构造相应的确定有限自动机m。解答:对照自动机的定义m=(s,f,s0,z),由f的定义可知f(x,a)、f(y,b)均为多值函数,所以是一非确定有限自动机,先画出nfa m相应的状态图,如图3-6-2所示。 a a b b b图3-6-2 nfa mxy用子集法构造状态转换矩阵表3-6-3所示。iiaibxx,

20、yyyx,yx,yx,yx,y将转换矩阵中的所有子集重新命名而形成表3-6-4所示的状态转换矩阵。表3-6-4 状态转换矩阵ab02112222 a a,b b b图3-6-5 dfa m021即得到m=(0,1,2, a,b, f,0, 1,2),其状态转换图如图3-6-5所示。 a a,b b图3-6-6 化简后的dfa m01将图3-6-5的dfa m最小化。首先,将m的状态分成终态组1,2与非终态组0;其次,考察1,2。由于1,2a=1,2b=21,2,所以不再将其划分了,也即整个划分只有两组0,1,2:令状态1代表1,2,即把原来到达2的弧都导向1,并删除状态2。最后,得到如图3-6

21、-6所示化简dfa m。2、对给定正规式b*(d|ad)(b|ab)+,构造其nfa m; aadb*b*(d|ad)(b|ab)(b|ab)*xyx123yx4135y678(d|ad)(b|ab)(b|ab)*2dbadabb|abbx4135y2bdbbabb图3-6-7 的nfa m解答:首先用a+=aa*改造正规式得:b*(d|ad)(b|ab)(b|ab)*;其次,构造该正规式的nfa m,如图3-6-7所示。1、 构造下面文法的ll(1)分析表。d tlt int | reall id rr , id r | 解答: ll(1)分析表见表4-3-1分析 虽然这个文法很简单,我们还

22、是从求开始符号集合和后继符号集合开始。 first(d)=first(t)=int, real follow(d)=follow(l)=#first(l)=id follow(t)=idfirst(r)=,, follow(r)=#有了上面每个非终结符的first集合,填分析表时要计算一个产生式右部的first()就不是件难事了。填表时唯一要小心的时,是产生式r右部的一个开始符号,而#在follow(r)中,所以r填在输入符号#的栏目中。表4-3-1 ll(1)分析表非终结符输入符号int realid,#ddtldtlttinttrealllid rrr,id rr 2、 下面文法gs是否为

23、ll(1)文法?说明理由。s a b | p q x a x y b b cp d p | q a q | 解答: 该文法不是ll(1)文法,见下面分析中的说明。分析 只有三个非终结符有两个选择。 1、p的两个右部d p 和 的开始符号肯定不相交。2、q的两个右部a q 和 的开始符号肯定不相交。3、对s来说,由于x first(a b),同时也有x first(p q x)(因为p和q都可能为空)。所以该文法不是ll(1)文法。3、 设有以下文法: gs:saabde|d absd|e bsac| cd| dse| (1)求出该文法的每一个非终结符u的follow集。(2)该文法是ll(1)

24、文法吗?(3)构造cs的ll(1)分析表。解答: (1)求文法的每一个非终结符u的follow集的过程如下:因为: s是识别符号,且有absd、bsac、dse,所以follow(s)应包含first(d)first(ac) first(e) #=a,da,d,c,ee#=a,c,d,e# 又因为absd和d,所以follow中还包含follow(a)。因为saabde和bsac,所以follow(a)=first(bde)first(c)=b,c综合、得follow(s)=a,d,c,e,#a,b,c,d,e,#因为absd,所以 follow(b)=first(sd)=a,d 因为saab

25、de | d、absd| e和bsac | cd,所以follow(d)=first(e)follow(a)follow(b) =eb,ca,d=a,b,c,d,e(2)gs不是ll(1)文法。因为产生式bsac|cd| 中 first(sac)follow(b)=a,d(3)构造gs的ll(1)分析表。按照ll(1)分析表的构造算法构造方法gs的ll(1)分析表如表4-3-2所示。表4-3-2 gs的ll(1)分析表abcde#saabdedabsdbsdbsdebsac/cdsac/dse/se/4、 将文法gv改造成为ll(1)的。 gv:vn|ne ev|v+e ni解答: 对文法gv

26、提取公共左因子后得到文法: gv:vnaa|eevbb|+eni求出文法gv中每一个非终结符号的first集: first(v)=ifirst(a)=, first(e)=ifirst(b)=+, first(n)=i求出文法gv中每一个非终结符号的follow集:follow(v)=#first(b)follow(e)=#,+,follow(a)= follow(v)=+,#follow(e)= first()follow(b)= first()follow(e)=follow(b)= follow(e)= follow(n)= first(a)follow(v)=,+,#可以看到,对文法g

27、v的产生式a|e,有first(e)follow(a)=+,#= 对产生式b|+e,有first(+e)follow(b)=+= 而文法的其他产生式都只有一个不为的右部,所以文法gv是ll(1)文法。5、已知文法:ga:aaaa|(1)该文法是ll(1)文法吗?为什么?(2)若采用ll(1)方法进行语法分析,如何得到该文法的ll(1)分析表?(3)若输入符号串“aaaa”,请给出语法分析过程。解答:(1)因为产生式aaaa| 有空产生式右部,而 follow(a)=#first(a)=a, #造成 first(a)follow(a)=a, a, #所以该文法不是ll(1)文法。(2)若采用ll

28、(1)方法进行语法分析,必须修改该文法。因该文法产生偶数(可以为0)个a,所以得到文法ga:aaaa|此时对产生式aaaa|, 有 follow(a)=#follow(a)=#,因而first(a)follow(a)=a, #=所以文法ga是ll(1)文法,按ll(1)分析表构造算法构造该文法的ll(1)分析表如表4-3-3所示。表4-3-3 文法ga的ll(1)分析表a#aaaaaa(3)若采用ll(1)方法进行语法分析,对符号串“aaaa”的分析过程如表4-3-4所示。 表4-3-4对符号串“aaaa”的分析过程步骤分析栈输入串产生式/动作1#aa a a a #aaaa2#a a aa

29、a a a #匹配3#a aa a a #匹配4#aa a #aaaa5#a a aa a #匹配6#a aa#匹配7#a#a8#接受第七节 习题设有文法gs为:sa|b|(a)asda|s(1) 完成下列算符优先关系表,见表5-7-1,并判断gs是否为算符优先文法。表5-7-1 算符优先关系表ab()d#ab()d# (2)给出句型(sdsds)的短语、简单短语、句柄、素短语和最左素短语。(3)给出输入串(adb)#的分析过程。解答: (1)先求文法gs的firstvt集和lastvt集:由sa|b|(a)得:firstvt(s)=a,b,( );由asd得:firstvt(a)=d;又由a

30、s得:firstvt(s) firstvt(a),即firstvt(a)=d,a,b,(;由sa|b|(a)得;lastvt(s)=a,b,;由ada得:lastvt(a)=d,又由as得:lastvt(s) lastvt(a),即lastvt(a)=d,a,b,)。构造优先关系表方法如下: 对pab,或paqb,有ab; 对par,而bfirstvt(r),有ab; 对prb,而afirstvt(r),有ab。由此得到: 由s(a)得:(); 由s(a得:(firstvt(a),即:(d,(a ,(b,(;由ada得:dfirstvt(a),即:dd,da,db,d(; 由sa)得,last

31、vt(a),即:d),a),b),);由asd得:lastvt(s)d,即:ad,bd,)d;此外,由#s#得:#;由#firstvt(s)得:#a,#b,#(;脂由lastvt(s)#得:d#,a#,b#,)#。最后得到算符优先关系表,见表5-7-2。表5-7-2 算符优先关系表ab()d#ab()d#由表5-7-2可以看出,任何两个终结符之间至少只满足、三种优先关系之一,故gs为算符优先文法。sasasd()asd图5-7-3 句型(sdsds)的语法树(2)为求出句型(sdsds)的短语、简单短语、句柄,我们先画出该句型对应的语法树,如图5-7-3所示。由图5-7-3得到:短语:s,sd

32、s,sdsds,(sdsds)简单短语(即直接短语):s句柄(即最左直接短语):s素短语:sds,它同时也是该句型的最左素短语。(3)输入串(adb)#的分析过程见表5-7-4表5-7-4 输入串(adb)#的分析过程符号栈输入串说明#(adb)#移进#(adb)#移进#(adb)#用sa归约#(sdb)#移进#(sdb)#移进#(sdb)#用sb归约#(sds)#用as归约#(sda)#用asda归约#(a)#移进#(a)#用s(a)归约#s#分析成功第四节 习题一、单项选择题1、若a为终结符,则aa为 项目 a.归约b.移进c.接受d.待约2、若项目集ik含有a,则在状态k时,仅当面临的输

33、入符号afollow(a)时,才采取“a”动作的一定是 。 a.lalr文法b.lr(0)文法c.lr(1)文法d.slr(1)文法3、就文法的描述能力来说,有 。 a. slr(1)lr(0) b. lr(1)lr(0)c. slr(1)lr(1)d.无二义文法lr(1)4、在lr(0)的action子表中,如果某一行中存在标记“rj”的栏,则 。 a.该行必定填满rjb.该行未填满rjc.其他行也有rjd.goto子表中也有rj5、一个 指明了在分析过程中的某时刻所能看到产生式多大一部分。 a.活前缀b.前缀c.项目d.项目集解答: 1、a称为归约项目,对文法开始符s的归约项目,如s称为接

34、受项目,aa(a为终结符)称为移进项目。在此选b.2、当用产生式a归约时,lr(0)无论面临什么输入符号都进行归约;slr(1)则仅当面临的输入符号afollow(a)时进行归约;lr(1)则当在把归约为a的规范句型的前缀aa前提下,当后跟终结符a时,才进行归约;因此选d。3、由于lr(0)slr(1) lr(1)无二义文法,故选c。4、选a。5、选c。二、多项选择题1、一个lr分析器包括 。 a.一个总控程序b.一个项目集c.一个活前缀d.一张分析表e.一个分析栈2、lr分析器核心部分是一张分析表,该表包括 等子表。 a.ll(1)分析b.优先关系c.goto d.lre.action3、每

35、一项actions,a所规定的动作包括 。a.移进b.比较c.接受d.归约e.报错4、对lr分析表的构造,有可能存在 动作冲突。a.移进b.归约c.移进/归约d.移进/移进e.归约/归约5、就文法的描述能力来说,有 。 a. slr(1)lr(1)b. lr(1)slr(1)c. lr(0)lr(1)d. lr(1)无二义文法 e. slr(1)无二义文法6、对lr分析器来说,存在 等分析表的构造方法。 a.lalrb.lr(0)c.slr(1)d.slr(0)e.lr(1)7、自上而下的语法分析方法有 。 a.算符优先分析法b.ll(1)分析法c.slr(1)分析法d.lr(0)分析法e.l

36、alr(1)分析法解答: 1、一个lr分析器包括一个总控程序和一张分析表,选a、d。2、选c、e。3、选a、c、d、e。4、在lr分析表的构造中有可能存在“移进”/“归约”和“归约”/“归约”冲突;故选c、e。5、选a、b、c、d、e。6、选a、b、c、e。7、选a、c、d、e。三、填空题1、对于一个文法,如果能够构造 。使得它的 均是唯一确定的,则称该文法为lr文法。2、字的前缀是指该字的 。3、活前缀是指 的一个前缀,这种前缀不含 之后的任何符号。4、在lr分析过程中,只要 的已扫描部分保持可归约成一个 ,则扫描过的部分正确。5、将识别 的nfa确定化,使其成为以 为状态的dfa,这个df

37、a就是建立 的基础。6、a称为 项目;对文法开始符s为 项目;若a为终结符,则称aa为 项目;若b为非终结符,则称aa为 项目。 7、lr(0)分析法的名字中“l”表示 ,“r”表示 ,“0”表示 。解答: 1、一张分析表 每个入口2、任意首部3、规范句型 句柄4、输入串 活前缀5、活前缀 项目集合 lr分析算法6、归约 接受 移进 待约7、自左至右分析 采用最右推导的逆过程即最左归约 向右查看0个字符四、综合题1、对于文法gs: sas|b asa|a (1)列出所有lr(0)项目(2)列出构成文法lr(0)项目集规范族。解答:首先将文法g拓广为gs:sssas|basa|a(1)文法gs的

38、lr(0)项目是: 1、ss5、sas9、asa 2、ss6、sb10、asa 3、sas7、sb11、aa 4、sas8、asa12、aa2、列出构成文法lr(0)项目集规范族。用-closure(闭包)办法构造文法g的lr(0)项目集规范族如下:i0:1、ss i3:9、asai6:12、aa 3、sas8、asai7:7、sb 8、asa3、sas 11、aa6、sb 6、sb11、aai1:2、ssi4:10、asa 9、asa4、sas8、asa3、sas11、aa6、sb3、sas8、asa6、sb 11、aai2:4、sasi5:5、sas 3、sas9、asa6、sb8、asa

39、 8、asa11、aa 11、aa3、sas6、sb注意:i1中的ss和asa是由状态i0中的1和3读入一个s字符后得到的下一个项目;,而i4中的asa和aas则是由i3中的9和3读入一个a字符后得到的下一个项目;i5中的sas和asa则是由i4中的4和8读入一个s字符后得到的下一个项目。状态全体构成了文法g的lr(0)规范族。第八节 习题一、单项选择题1、中间代码生成所依据的是 。a.语法规则b.词法规则c.语义规则d.等价变换规则2、四元式之间的联系是通过 实现的。 a.指示器b.临时变量c.符号表d.程序变量3、后缀式ab+cd+/可用表达式 来表示。a.a+b/c+db.(a+b)/(c+d)c.a+b/(c+d)d.a+b+c/d4、表达式(ab)(cd)的逆波兰表示为 。 a. abcdb. abcdc. abcdd. abcd5、中间代码的树型表示+abcd+ 所对应的表达式为 。 a.a+b+c+db.a+(b+c)+dc.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论