- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
自下而上计算继承属性讨论在自下而上的分析过程中实现L-属性文法的方法。这种方法可以实现任何基于LL(1)文法的L-属性文法,它还可以实现许多(不是所有)基于LR(1)文法的L-属性文法。这种方法是S-属性文法的自下而上翻译技术的一般化自下而上分析器对产生式A→XY的右部是通过把X和Y从分析栈中移出并用A代替它们。假设X有一个综合属性X.s,按照前面所介绍的方法我们把它与X一起放在分析栈中。由于X.s的值在Y以下的子树中的任何归约之前已经放在栈中,这个值可以被Y继承。也就是说,如果继承属性Y.i是由复写规则Y.i:=X.s定义的,则可以在需要y.i值的地方使用X.s的值。在自下而上分析中计算属性值时复写规则起非常重要的作用。看下面例子。T→int {T.type:=integer}T→real {T.type:=real}L→ {L1.in:=L.in}L1,id {addtype(id.entry,L.in)}L→id {addtype(id.entry,L.in)}L假设某翻译模式为:D→T {L.in:=T.type}5678910T4DLLLRealtypeininin3entry2entryentryid3id2id1..1例8.2输入串realRealid1,id2,id3的分析过程当L的右部被归约时,T恰好在这个右部的下面输入状态(符号)使用产生式Realid1,id2,id3#id1,id2,id3#realid1,id2,id3#TT?real,id2,id3#Tid1,id2,id3#TLL?idid2,id3#TL,,id3#TL,id2,id3#TLL?Li,did3#TL,#TL,id3#TLL?Li,d#DD?TL用综合属性代替继承属性有时,改变基础文法可能避免继承属性。例如,一个Pascal的说明由一标识符序列后跟类型组成,如,m,n:integer。这样的说明的文法可由下面形式的产生式构成D→L:TT→integer|charL→L,id|id因为标识符由L产生而类型不在L的子树中,我们不能仅仅使用综合属性就把类型与标识符联系起来。事实上,如果非终结符L从第一个产生式中它的右边T中继承了类型,则我们得到的属性文法就不是L-属性的,因此,基于这个属性文法的翻译工作不能在语法分析的同时进行。使类型作为标识符表的最后一个元素:D→idLL→,idL|:TT→integer|char这样,类型可以通过综合属性L.type进行传递,当通过L产生每个标识符时,它的类型就可以填入到符号表中。一个解决的方法是重新构造文法E–TE01E–ATE|?02T–FT03T–MFT|?04F–(E)|int05A–+|-06M–*|/07语义制导翻译的编译实现:例8.6E-TEE-ATE{rhs=PopOperand();lhs=PopOperand();switch(PopOperator()){caseADD:PushOpera
您可能关注的文档
- 西师大版数学三下统计课件之二.ppt
- 资产减值准则.ppt
- 认识生物的多样性课件.ppt
- 销售以事业部形式经营解读.ppt
- 阅读理解解读技巧.ppt
- 问题本位学习的理论与实务.ppt
- 质量成本COQ培训材料.ppt
- 项目二管理思想发展.ppt
- 西师版小学五年级上册图形的旋转说课课件.ppt
- 销售标准化动线-售前售中售后.ppt
- 2024-2025学年安徽省亳州市涡阳县高二下学期2月开学考试政治试题(解析版).docx
- 2024-2025学年江西省赣州市上犹县高二下学期开学考试政治试题(解析版).docx
- 2024-2025学年山东省济宁市高二下学期开学考试政治试题(解析版).docx
- 2024-2025学年山西省卓越联盟高三下学期2月开学质量检测政治试题(解析版).docx
- 2024-2025学年新疆乌鲁木齐市高二下学期2月开学考试政治试题(解析版).docx
- 2024-2025学年新疆维吾尔自治区乌鲁木齐地区高三2月大联考文科综合政治试题(解析版).docx
- 2024-2025学年安徽省蚌埠市固镇县高一上学期1月期末考试政治试题 (解析版).docx
- 2024-2025学年江苏省扬州市高三上学期期末检测政治试卷(解析版).docx
- 2024-2025学年江西省吉安市高三上学期期末教学质量检测政治试题(解析版).docx
- 2024-2025学年山东省济宁市高二上学期1月期末考试政治试题(解析版).docx
文档评论(0)