当前位置:   article > 正文

语义分析基础知识_语义规则

语义规则

语法制导定义SDD

在这里插入图片描述

综合属性(合成属性)

这一部分比较好理解,直接看图就可以明白,简单点说,就是右部候选式的符号的属性计算左部被定义的符号。而对于终结符的综合属性,已经做出了具体的规定,因此SDD中是没有计算终结符属性值的语义规则的。

一般是自下而上传递语义信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zV1LugzX-1655533340895)(C:\Users\86135\AppData\Roaming\Typora\typora-user-images\1655524031964.png)]

继承属性

可以简单的理解,如果一个属性不是合成的,则可以称作继承属性。(书本原话)

对于继承属性需要清楚终结符是没有继承属性的。

继承属性就是通过右部候选式的符号的属性和左部被定义符号的属性,计算出右部候选是中的符号。

一般是自上而下的传递信息。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zdcgO0dU-1655533340896)(C:\Users\86135\AppData\Roaming\Typora\typora-user-images\1655524114699.png)]

语义规则通常是以表达式的形式来描述的。

示例

注释分析树:每个节点都带有属性值的分析树。
在这里插入图片描述

在这里插入图片描述

属性文法

也称为属性翻译文法,基于上下文无关文法

产生式(上下文无关文法+语义规则) = 属性文法

为每个文法符号(终结符或非终结符)都配备若干相关的值,也就是属性,表示文法符号的相关信息,如:类型、值、代码序列、符号表内容等。
对于文法的每个产生式都会有一组(若干条)属性的语义规则,对属性进行计算或者传递。

注意下图的例子中,n作为终结符,属性已经由词法分析器给出,不需要SDD计算,所以没有列出。

在这里插入图片描述

S属性文法

一个属性文法都是合成属性,则称为 S 属性文法 。

在这里插入图片描述

符号表

符号表用杂凑表这种数据结构实现,其实就是哈希表。

注意:桶的个数,也就是数组的大小,选择一个素数,可以让杂凑函数更好的运行。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/604304
推荐阅读
相关标签
  

闽ICP备14008679号