- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理_课后习题答案_杨明课案
编译原理习题答案
习题1
1.1翻译程序:把用某种程序设计语言(源语言)编写的程序(源程序)翻译成与之等价的另一种语言(目标语言)的程序(目标程序)。
编译程序:一种翻译程序,将高级语言编写的源程序翻译成等价的机器语言或汇编语言的目标程序。
1.2词法分析、语法分析、语义分析和中间代码生成、代码优化、目标代码生成
1.3词法分析:根据语言的词法规则对构成源程序的符号进行扫描和分解,识别出一个个的单词。
语法分析:根据语言的语法规则,把单词符号串分解成各类语法单位。 语义分析及中间代码生成:对语法分析识别出的语法单位分析其含义,并进 行初步翻译。
代码优化:对中间代码进行加工变换,以产生更高效的目标代码。
目标代码生成:将中间代码变换成特定机器上的绝对指令代码、可重定位的指令代码或会变指令代码。
以上5个阶段依次执行。
习题2
2.1 (1)有穷非空的符号集合
(2)利用产生是规则A-v将A替换为v时与A的上下文无关。
(3)略
(4)推导是把句型中的非终结符用一个产生是规则的右部开替代的过程;
直接推导是将非终结符的替代结果只用了一次产生式规则。
(5)略
(6)一个句型的最左直接短语
(7)如果一个文法存在某个句子对应两棵不同的语法树或有两个不同的最左(右)推导,则称这个文法是二义的。
2.2(1)VN ={Z,A,B} VT ={a,b,c,d,e}
(2)abbcde,abbbcde是,acde不是。
2.3 (1)L[G]={d|n≥1,m≥0}
(2)
2.4 (1) A=B=c=fAg=fBg=fCg=feg
(2)A=AaB=AaC=Aae=Bae=BcCae=Bceae=Cceae=eceae
(3)A=B=BcC=BcfAg=BcfAaBg=BcfAaCg=BcfAaeg=BcfBaeg
=BcfCaeg=Bcfeaeg=Ccfeaeg=ecfeaeg
(3)中题目有错应为CfCg|e
2.5 L[G]={a?b?c?|aab,n≥2}
2.6 (1)Z→AB A→Aa|ε B→Bb|ε
(2)Z→aZb|ab
(3)Z→aAb A→aAb|b
(4)Z→AB A→aAb|ab B→cB|ε
(5)Z→aaAb|ab Z→aaBb|bb A→aaAb|ab B→aaBb|bb
2.7 一位数:Z→2|4|6|8
两位数:Z→AB A→1|2|3|4|5|6|7|8|9 B→0|2|4|6|8
三位以上:Z→ACB A→1|2|3|4|5|6|7|8|9 B→0|2|4|6|8 C→CD D→0|1|2|3|4|5|6|7|8|9
2.8证明:E=E+T=E+T*F
短语:T*F E+T*F 直接短语:T*F 句柄:T*F
2.9 语法树: E 短语:E*T , (E*T) , F↑(E*T) ,F ,E* F↑(E*T)
E * F 直接短语:E*T , F
T ↑ F 句柄:F
F ( E )
E * T
2.10(1)语法树 (2) 直接短语:a , Z
Z 句柄:Z
( L )
L , Z
Z ( L )
Z
a
2.11最左推导:Z=ZaB=BaB=B+AaB=A+AaB=(+)Z*aB=(+)ZaB*aB
=(+)
文档评论(0)