编译原理 第08章.ppt

编译原理 第08章

第八章 语法制导翻译和 中间代码生成 【学习目标】   ◇明确语义分析在编译过程所处的阶段和作用。   ◇掌握属性文法的基本概念。   ◇使用属性文法和语法制导翻译方法描述具体的语义分析和产生中间代码。 【难重点】   ◇ 翻译时源语句到目标语句结构上的变换。   ◇语法制导翻译实现的方法。 编译程序的任务 编译程序的任务是把源程序翻译成目标程序,这个目标程序必须和源程序的语义等同,也就是说,尽管它们的语法结构完全不同,但它们所表达的结果应完全相同。通常,在词法分析程序和语法分析程序对源程序的语法结构进行分析之后,要么由语法分析程序直接调用相应的语义子程序进行语义处理,要么首先生成语法树或该结构的某种表示,再进行语义处理。 编译中的语义处理   编译中的语义处理是指两个功能: 第一,审查每个语法结构的静态语义,即验证语法结构合法的程序是否真正有意义。有时把这个工作称为静态语义分析或静态审查。 第二,如果静态语义正确,语义处理则要执行真正的翻译,即,或者将源程序翻译成程序的一种中间表示形式(中间代码),或者将源程序翻译成目标代码。   本章引入属性文法和语法制导翻译方法的基本思想,介绍几种典型的中间代码形式,最后讨论一些语法成分的翻译工作。 静态语义分析的内容 静态语义分析通常包括: ① 类型检查。编译程序必须报告不符合类型系统的信息。 ② 控制流检查。控制流语句必须

文档评论(0)

1亿VIP精品文档

相关文档