第六章 属性文法和语法制导翻译

 属性文法
    是在上下文无关文法的基础上为每个文法符号(终结符或非终结符)配备若干个相关的“值”(称为属性)。
    
    属性:代表与文法符号相关的信息,和变量一样,可以进行计算和传递。

    例:类型、值、代码序列、符号表内容等

编译阶段中的语义分析及中间代码的形成和语法分析称为语法制导翻译。其为CFG中的文法符号设置语义属性,用来表示语法成分对应的语义信息。文法符号的意义属性值是与文法符号所在产生式相关联的语义规则来计算的,对于给定的输入串X构建X的语法分析树,并利用与产生式相关的语义规则来计算分析树中各节点对应的语义属性。将有一种规则和语法规则联系起来要涉及两个概念,语法制导定义和语法制导翻译方案,其中语法制导定义SDD是对CFG的推广将每个文法符号和一个语义属性集合相关联,将每个产生式和一组语义规则相关联,这些规则用于计算该产生式中个各文法符号属性值。而语法制导定义SDT是在产生式右部嵌入了程序片段CFG这些程序片段称为语义动作。SDT实际上是对SDD的一种补充。SDD为CFG中的文法符号设置语义属性。对于给定的输入串X应用语法规则计算分析树中的各节点对应的属性值。由此就有了依赖图,依赖图是一个描述了分析树中的节点属性间依赖关系的有向图。分析树中每个标号为X的节点的每个属性a都对应着一来图中的一个节点。如果属性X。a的值依赖于属性Y。b的值则依赖图中有一条Y。b的结点指向x.a的结点的有向边。


总结:第六章相对来说比较难,讲的也比较少,做题方面比较困难,通过课后看一下资料从而更深一步理解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值