西安交通大学考研资料(编译原理)----第六章 属性文法和语法制导翻译.pdfVIP

西安交通大学考研资料(编译原理)----第六章 属性文法和语法制导翻译.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章 属性文法和语法制导翻译 前面词法分析我们解决用户源程序中单词符号是否正确的问题,而语法分析我们解决用 户源程序语法结构是否正确的问题,从本章开始解决如何将正确的源程序翻译成为机器的目 标代码的问题。 在翻译过程中,即使词法和语法都没有错误,但是有可能语义有错误。严格的说,现在 是语义分析。只有语义正确才能进行翻译。 一、属性文法 (用以分析语义的文法) 1.属性 一个文法符号X ∈ (VN ∪VT )的语义性质称为文法符号的语义属性,用以代表文法的 相关信息,简称属性。 变量的数据类型; 属性,常用以描述事物或人的特征、性质、品质等。 表达式的值; 属性的典型例子:如右图,这些都可以构成文法符号的属 存储器中变量的位置; 性。对编译程序使用的语法树的结点,可以用“类型”、“值” 程序的目标代码; 或“存储位置”来描述。 数的有效位数; 用记号 X.a 表示与文法符号 X 相关的属性 a 。(X.a 为文法 等等; 符号 X 的a 属性) 同一个文法符号可以有多个属性。例如:变量有数据类型、存储类型、值等属性。 2 .属性文法 (1)语义规则 对于文法的每个产生式所配备的一组属性的计算规则 (就是计算的式子),称为语义规 则。 (2 )属性文法 对于某个上下文无关文法,当把每个文法符号联系于一组属性,且让该文法的产生式 附以语义规则时,称该上下文无关文法为属性文法。也就是将上下文无关文法中的产生式, 附着以(配以)一组与之对应的属性计算规则,两者合成最终构成了属性文法。 属性文法是对上下文无关文法的扩充:是把上下文无关语言同上下文相关的语言语义 信息相结合的形式定义。因而是语义分析形式定义的有效手段,即使代码优化与目标代码生 成也可以用属性文法来形式化地描述。 例 1:简单表达式求值的属性文法——语义描述。 产生式规则 语义规则 文法有若干个产生式,其中第一个符号 L 是文法 L En 的识别符号(最终要归约到此),n 表示行结束符 (0) → pr E int( . ) val (类似C 语言中的‘\n ’),产生式 的语义 L E → E E T n → + (1) E . : 1 E . T . + 规则是一个过程或函数,不是式子,表示打印 E E T → val 1 val val 的属性值val 。可以理解 L 的属性为“空”或“虚”。 (2) E . : T . (3) T T* F → 1 val val 在文法产生式中,为了将左边 E 和右边的 E 虚分 T. : T. * F. T F → val val val 开,加上了下标。为了给这些产生式配上语义规则, (4)

您可能关注的文档

文档评论(0)

asd3366 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档