- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 
                        查看更多
                        
                    
                第三章 语法分析  		3.1  完成下列选择题: 		(1) 文法G:S→xSx|y所识别的语言是    。a. xyxb. (xyx)*c. xnyxn(n≥0)d. x*yx* 		(2) 如果文法G是无二义的,则它的任何句子α    。a. 最左推导和最右推导对应的语法树必定相同 		b. 最左推导和最右推导对应的语法树可能不同 		c. 最左推导和最右推导必定相同 		d. 可能存在两个不同的最左推导,但它们对应的语法树相同 		(3) 采用自上而下分析,必须    。 		a. 消除左递归b. 消除右递归 		c. 消除回溯d. 提取公共左因子 		(4) 设a、b、c是文法的终结符,且满足优先关系ab和bc,则    。 		a. 必有acb. 必有ca 		c. 必有bad. a~c都不一定成立 		(5) 在规范归约中,用    来刻画可归约串。a. 直接短语b. 句柄c. 最左素短语d. 素短语 如果文法G是无二义的,则它的任何句子α。  A.最左推导和最右推导对应的语法树必定相同   B.最左推导和最右推导对应的语法树可能不同  C.最左推导和最右推导必定相同D.可能存在两个不同的最左推导,但它们对应的语法树相同3.2  令文法G[N]为G[N]: N→D|ND  D→0|1|2|3|4|5|6|7|8|9 		(1) G[N]的语言L(G[N])是什么(2) 给出句子0127、34和568的最左推导和最右推导。 		【解答】(1) G[N]的语言L(G[N])是非负整数。 		(2) 最左推导:		NNDNDDNDDDDDDD0DDD01DD012D0127NNDDD3D34NNDNDDDDD5DD56D568 		最右推导:		NNDN7ND7N27ND27N127D1270127NNDN4D434NNDN8ND8N68D68568 		3.5  按指定类型,给出语言的文法。(1) L={aibj|j>i≥0}的上下文无关文法; 		(2) 字母表Σ={a,b}上的同时只有奇数个a和奇数个b的所有串的集合的DFA;(1)所求上下文无关文法G[S]为G[S]:S→aSb|Sb|b 构造正规式 1(0|1)*101 相应的DFA。  		3.6  有文法G[S]: S→aAcB|Bd A→AaB|c B→bScA|b 		(1) 试求句型aAaBcbbdcc和aAcbBdcc的句柄; 		(2) 写出句子acabcbbdcc的最左推导过程。 		【解答】  (1) 分别画出对应句型aAaBcbbdcc和aAcbBdcc的语法树如图3-4的(a)、(b)所示。 		3.7  对于文法G[S]: S→(L)|aS|a L→L,S|S 		(1) 画出句型(S,(a))的语法树; 		(2) 写出上述句型的所有短语、直接短语、句柄、素短语和最左素短语。 		【解答】 (1) 句型(S, (a))的语法树如图3-5所示。 		(2) 由图3-5可知: 		短语:S、a、(a)、S,(a)、(S,(a)); 		直接短语:a、S; 		句柄:S; 		素短语:a。 		3.9  考虑文法G[S]: S→(T) | a+S | a 	T→T,S | S 		消除文法的左递归及提取公共左因子,然后对每个非终结符FOLLOW。 		【解答】 消除文法G[S]的左递归: S→(T) | a+S | a T→ST′ T′→,ST′| ε 		提取公共左因子: S→(T) | aS′ S′→+S | ε T→ST′ T′→,ST′| ε 		3.10  已知文法G[A]: A→aABl|a B→Bb|d 		(1) 试给出与G[A]等价的LL(1)文法G[A′];【解答】 (1) 文法G[A]存在左递归和回溯,故其不是LL(1)文法。要将G[A]改造为LL(1)文法,首先要消除文法的左递归,即将形如P→Pα | β的产生式改造为 P→βP′ P→αP′| ε来消除左递归。由此,将产生式B→Bb|d改造为 B→dB′ B′→bB′| ε 		其次,应通过提取公共左因子的方法来消除G[A]中的回溯,即将产生式A→aABl|a改造为 A→aA′ A′→ABl | ε 		最后得到改造后的文法为 G[A′]:A→aA′ A′→ABl | ε B→dB′ B′→bB′| ε 		求得:FIRST(A)={a}FIRST(A′)={a, ε} FIRST(B)={d}FIRST(B′)={b, ε} 		对文法开始符号A,有FOLLOW(A)={#}。 		由A′→ABl得FIRST(B)\{ ε}?FOLLOW(A),即FOLLOW(A)={#,d};由A′→ABl得FIRST(′l′) ?FOLLOW(B),即FOLLOW(B)={l
                
原创力文档
                        

文档评论(0)