【课前思考】
  ◇ 回顾第一章介绍的编译过程,理解语义分析在编译过程中的位置和作用。
  ◇什么是中间表示(中间代码),为什么要中间表示?
  ◇"语法制导翻译"是什么含义?
  ◇ 高级语言语句的结构和低级语言结构的不同。
【学习目标】
  ◇明确语义分析在编译过程所处的阶段和作用。
  ◇掌握属性文法的基本概念。
  ◇使用属性文法和语法制导翻译方法描述具体的语义分析和产生中间代码。
【学习指南】
  紧接在词法分析和语法分析之后,编译程序要做的工作就是进行静态语义检查和翻译。静态语义检查通常包括:类型检查,控制流检查,一致性检查,相关名字检查及名字的作用域分析等等。虽然源程序可以直接翻译为目标语言代码,但是许多编译程序都采用了独立于机器的,复杂性介于源语言和机器语言之间的中间语言。其好处便于进行与目标机无关的代码优化,也使得编译的前后端接口清晰,编译程序结构在逻辑上更简明。
【难重点】
  ◇ 翻译时源语句到目标语句结构上的变换。
  ◇语法制导翻译实现的方法。
  ◇ Yacc和语法制导翻译。
【知识结构】