《编译原理》课程简介 (44).pdf
《《编译原理》课程简介 (44).pdf》由会员分享,可在线阅读,更多相关《《编译原理》课程简介 (44).pdf(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、编 译 原 理 C O M P I L A T I O N P RIN C IP LE 第六章 属性文法和语法制导翻译6.2 语法制导翻译6.2 语法制导翻译什么是语法制导的翻译n编译阶段p词法分析p语法分析p语义分析 p中间代码生成p代码优化p目标代码生成 语义翻译语法制导翻译6.2 语法制导翻译n语法制导定义(Syntax-Directed Definitions,SDD)p将每个文法符号和一个语义属性集合相关联p将每个产生式和一组语义规则相关联,这些规则用于计算该产生式中各文法符号的属性值n一个语法制导翻译的基础是一个文法,其中翻译成分依附在每一产生式上。产产 生生 式式语语 义义 规规
2、 则则(1)D TL L.in:=T.type(2)Tint T.type:=integer(3)T real T.type:=real.6.2 语法制导翻译n语法制导翻译方案(Syntax-Directed Translation,SDT)pSDT是在产生式右部嵌入了程序片段的上下文无关文法,这些程序片段称为语义动作。按照惯例,语义动作放在大括号内。D T L.inh=T.type L Tint T.type=int T real T.type=real L L1.inh=L.inh L1,id.6.2 语法制导翻译语法制导翻译实现n从概念上讲,语法制导翻译即基于属性文法的处理过程通常是这样
3、的:对单词符号串进行语法分析,构造语法分析树,然后根据需要遍历语法树并在语法树的各结点处按语义规则进行计算。分析树属性依赖图语义规则的计算顺序输入符号串6.2 语法制导翻译n分析树中的继承属性和综合属性之间的相互依赖关系,可以由称为依赖图的一个有向图来描述。n为每一个包含过程调用的语义规则引入一个虚综合属性b,这样把每一个语义规则都写成b:=f(c1,c2,.,ck)的形式。n依赖图中为每一个属性设置一个结点,如果属性b依赖于属性c,则从属性c的结点有一条有向边连到属性b的结点。v依赖图6.2 语法制导翻译v依赖图 产生式语义规则D TL T intT realL L1,idL idL.in:
4、=T.type T.type=integer T.type:=realL1.in:=L.in addtype(id.entry,L.in)addtype(id.entry,L.in)v例 Real id1,id2,id3分析树的依赖图.in54id31678910TDLLLRealtypeinin3 entry2 entryentryid2id16.2 语法制导翻译良定义的属性文法n很显然,一条求值规则只有在其各变元值均已求得的情况下才可以使用。但有时候可能会出现一个属性对另一个属性的循环依赖关系。n如,p、c1、c2都是属性,若有如下求值规则:p:=f1(c1)、c1:=f2(c2)、c2:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译原理 编译原理课程简介 44 编译 原理 课程 简介 44
限制150内