关于-编译原理-课程语义处理部分的教学内容组织与探讨.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文档。上传文档
查看更多
教学内容与体系 145 语义处理的典型过程是采用语法制导的处理,或称为语法制导的翻译。目前的编译原理 教学中,语法制导的翻译是语义处理部分的主体。 语法制导翻译的理论基础是属性文法。在上下文无关文法中,为每个文法符号关联特定 的属性(综合属性或继承属性),同时为每个产生式关联—个用于属性求值的恰当的语义规则 集,就得到—个属性文法。基于属性文法的语法制导翻译,就是在语法分析基础上,根据语 义规则对于属性值进行计算。 根据属性文法进行属性值的计算,—般要介绍两种方法,—种是在先生成语法树的基础 上对语法树进行标注,有典型的算法;另—种是在语法分析的同时进行属性值的计算,称为 单遍的方法。 在E述两类方法中,单遍处理的方法涉及的内容较多,在教学中所占的比重也较多。两 类特殊的属性文法,即$属性文法和k属性文法,是贯穿其中的主线。s-属性文法适合于自 下而上处理,可以在LR分析的基础上实现翻译程序;而L.属性文法财适合于自上而下处理, 可以在U1)分析的基础上实现翻译程序。 在实践中,语法制导翻译的描述往往不是直接采用属性文法,而是采用翻译模式。它的 实质就是^工干预语义处理的过程,规定属性计算的次序,因此适合于作为自动翻译工具的 输入,用作语法制导翻译的描述。 翻译模式主要服务于单遍的处理方式,即在语法分析的同时来进行语义处理。通常,要 对翻译模式的形式进行限定才能够适合单遍处理的要求。限定要求类似于S.属性文法和【厂 属性文法中的限定规则。 翻译模式自上而下的翻译可以基于U彳1)方法,构造出预测翻译程序。翻译模式的自下 而上处理可以采用基于LR分析的自动构造工具(如Yaec/Bision)。 静态语义分析和中间代码生成的工作实际上是相当技术性的,大多数内容对于我们的同 学来说是容易理解的。所需要讲解的只是针对什么样的语言成分可以进行如何处理的—般方 法,通过举例就可介绍清楚。当然,一些特殊技术,如拉链与代码回填等是需要作为重点讲 解的内容。 静态语义分析和中间代码生成过程需要符号表作为语义处理的环境。符号表的内容包括 它的使用和组织,大部分内容可以独立讲解。这—部分具体什么时候讲,是代课教师需要考 虑的—个问题。 运行时存储组织也是和中间代码生成有关的内容。有些书将这部分内容先于中间代码生 成来讲,有些则放在中间代码生成之后。实际上只要在目标代码生成之前进行介绍都不会什 么问题。 从匕述j挫讨论中可知,要组织好、讲好语义处理部分的内容是具有一定挑战性的。 3—种可选的教学内容组织 语义处理这部分的教学内容—般都结合静态语义检查、中间代码生成等实际语言实现中 的具体技术直接讲解,给出个别的编译器的具体实现的语义规则片断,而放松了对基本原理 的透彻讲解。这样做的结果,虽然学生就个别语义分析技术、中间代码生成技术是可以理解 的,但自己设计时就不知所措。虽然组织好基本知识的讲解有—定的难度,多数教材在这方 面存在着不足,但我ff】认为必须下工夫打好这个基础。 程序设计语言及其教学探索 语义处理教学内容的·种可选组织是; (1)基础集中于—节。 (2)语言实现中的常用技术作为—节。 (3)语义分析环境作为一节:符号表与运行时存储组织(当然也是目标代码生成所需的 环境,实为承上启下的载体)。 首先将语义处理部分的基本原理集中系统的概述出来。然后,是具体实现技术。学好基 础原理,心里就会有底,就能在学f董原理的基础上进行自己的设计。在知识结构上也能和语 法分析,中间代码生成的基本原理连贯起来,前端、后端联系起来。 4基础知识的讲解要透彻 对于基本原理的讲解,我们认为除了要解释其基本内容外,非常关键的一点就是要举出 恰当的例子,给出完整的过程,教会学生具体如何做。 例如,在讲翻译模式的自上而下的翻译时,最好能给学生讲解如何具体做到这—步(这 在目前的参考教材中很难找到),否则学生不易掌握的透彻。我们设计下述例子,构造完整的 翻译模式的基于U』1)预测分析程序。 例I:翻译模式的自上而下的翻译。 翻译模式如下: f N一.(S.f:=l}Sprint(S.v)) S—} B Sl:f--S.f+ll Sl(S.v:=S1.v+B.v)

文档评论(0)

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

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

1亿VIP精品文档

相关文档