编译原理
文章平均质量分 87
清风疏影
这个作者很懒,什么都没留下…
展开
-
编译原理笔记-SDD
编译原理笔记-SDDSDD与SDT的定义与区别见SDD与SDT的区别语法制导定义语法制导定义(Syntax-Directed Definition, SOD) 是一个上下文无关文法和属性及规则的结合。属性和文法符号相关联,而规则和产生式相关联。例子如下属性分为综合属性和继承属性.综合属性:结点N 上的综合属性只能通过N 的子结点或N 本身的属性值来定义。继承属性:在分析树结点N上的非终结符A的继承属性只能通过N的父结点、N的兄弟结点或N本身的属性值来定义.有些继承属性有其特殊作用,具体见继原创 2021-10-07 21:49:37 · 5229 阅读 · 1 评论 -
继承属性inh和综合属性syn的作用
继承属性inh和综合属性syn的作用因为文法不是为了翻译而定义的,而是以语法分析为目的进行定义的,因此可能会产生语法分析树的结构和源代码的抽象语法不"匹配”.例如,下面的文法便是按照人类的算术习惯定义的.比如加法就定义为E=E+TE=E+TE=E+T,乘法就定义为T=T×FT=T\times FT=T×F.但如果要进行语法分析,这两个文法就存在左递归的问题,需要消除左递归,例如,对于乘法T=T×FT=T\times FT=T×F,消除左递归后的文法如下.可见,由于T′T'T′的引入,导致语法分析原创 2021-10-07 21:35:53 · 2066 阅读 · 0 评论 -
SDD与SDT的区别
SDD与SDT的区别龙书在一开始举了以上两个例子以说明这两个概念的区别.但我认为这两个例子其实不够好.它让我误以为所谓SDD是只进行属性值的计算,例如属性的加减乘除,而SDT则涉及到print这种无关属性值计算的程序片段.这显然是错误的.正确的理解为SDD是关于语言翻译的高层次规格说明隐蔽了许多具体实现细节,使用户不必显式地说明翻译发生的顺序SDT可以看作是对SDD的一种补充,是SDD的具体实施方案显式地指明了语义规则的计算顺序,以便说明某些实现细节例如,对于乘法的消除左原创 2021-09-29 23:19:24 · 4956 阅读 · 0 评论