川师编译原理教学课件8.pptVIP

  • 1
  • 0
  • 约9.12千字
  • 约 57页
  • 2017-05-07 发布于四川
  • 举报
川师编译原理教学课件8

第八章 语法制导翻译和中间代码生成 8.1 语法制导翻译概述 1、语法制导翻译的概念 在语法分析过程中根据各个规则所相联的语义动作或所对应的语义子程序进行翻译的办法。 2、要求 语法结构具有规定的语义。 3、本质 在进行语法分析的同时,完成相应的语义处理,关键是如何根据被识别出的语法成分进行语义处理。 4、语义分析的任务 1)静态语义检查 例:类型、运算、维数、越界 a+b-1*true 2)动态语义处理(真正的翻译) 例:变量的存储分配 例:表达式的求值 例:语句的翻译(中间代码的生成) 总目标:生成等价的中间代码/目标代码 5、处理方法 1)对应每一个文法规则编制一个语义子程序,当一个规则获得匹配时,调用相应的语义子程序实现语义检查与翻译。 2)在文法规则的右部适当位置,插入相应的语义动作,按照分析的进程,执行遇到的语义动作。 注意:语义——可以看成是相应文法符号的属性。 6、语法制导翻译的具体实现途径 使用LR分析器实现:通过对符号栈 加上语义,扩充LR分析器的分析能力,使 它在用某个文法规则进行归约的同时,调用相应的语义子程序或产生某种中间代码形式。 8.2 属性文法 1、现代编译系统多采用语法制导翻译方法,该方法使用属性文法为工具来说明程序设计语言的语义。 2、属性文法是Knuth在1968年提出的

文档评论(0)

1亿VIP精品文档

相关文档