语法制导翻译和中间代码生成.pptVIP

  • 23
  • 0
  • 约9.85千字
  • 约 56页
  • 2019-01-21 发布于浙江
  • 举报
第8章 语法制导翻译和中间代码生成 经过词法分析、语法分析后,源程序在静态结构上的正确性得到了保证,编译程序接着要对源程序进行静态语义检查和翻译。 语义检查:类型检查、控制流检查、一致性检查等。 翻译:源程序→中间代码 本章主要内容 1. 属性文法 2. 语法制导翻译概念 3. 中间代码的几种形式 4. 几个语句的翻译:如赋值语句、条件语句等。 语法制导翻译的引例 E→E+T {print ”1”} E→T {print ”2”} T→T*F {print ”3”} T→F {print ”4”} F→(E) {print ”5”} F→i {print ”6”} 对(i+i)*i的翻译 不难证明该符号串是文法的合法句子。按照这个句子向文法开始符号E的归约次序,且每当归约时调用该句柄的产生式所对应的语义子程序,便可得到相应的数字串:64264154632。 这个例子表明:输入源程序为(i+i)*i,输出为数字串。这是一种变换,而变换的规则是每当归约时调用相应的语义子程序。无疑这个例子是翻译的一个十分简单的模型。 翻译要解决的问题 1. 翻译成什么样的代码? 2. 什么时候实现这种变换(翻译)? 3. 如

文档评论(0)

1亿VIP精品文档

相关文档