常州北京网站建设,网站搜索栏怎么做,一个好的产品怎么推广,如何做短信验证码网站文章目录 一、总述二、翻译文法1、概念 三、语法制导翻译1、概念2、带属性的翻译文法3#xff09;综合属性4#xff09;继承属性5#xff09;举例 3、 L-属性翻译文法#xff08;L-ATG#xff09;1#xff09;概念2#xff09;求值规则 4、简单赋值形式的L-ATG#xff… 文章目录 一、总述二、翻译文法1、概念 三、语法制导翻译1、概念2、带属性的翻译文法3综合属性4继承属性5举例 3、 L-属性翻译文法L-ATG1概念2求值规则 4、简单赋值形式的L-ATGSL-ATG1概念 一、总述
为代码生成做“需求分析”符号表、运行时存储、中间表示前面三章内容。 方法
翻译文法TG和语法制导翻译属性翻译文法ATG自顶向下的语法制导翻译 翻译文法的自顶向下语法制导翻译。 属性文法的自顶向下语法制导翻译。
二、翻译文法
1、概念
输入文法未插入动作符号时的文法。由输入文法可以通过推导产生输入序列。
翻译文法插入动作符号的文法。由翻译文法可以通过推导产生活动序列。
活动序列由翻译文法推导出的符号串由终结符和动作符号组成。
从活动序列中抽去动作符号则得输入序列 ( i i ) ∗ i (ii)*i (ii)∗i从活动序列中抽去输入序列则得动作序列执行动作序列则完成翻译任务
定义翻译文法是上下文无关文法其终结符号集由输入符号和动作符号组成。由翻译文法所产生的终结符号串称为活动序列。
三、语法制导翻译
1、概念
语法制导翻译(Syntax Directed Translation)按翻译文法进行的翻译。给定一输入符号串根据翻译文法获得翻译该符号串的动作序列并执行该序列所规定的动作的过程。
2、带属性的翻译文法
在翻译文法的基础上可以进一步定义属性文法翻译文法中的符号包括终结符、非终结符和动作符号均可带有属性这样能更好的描述和实现编译过程。 属性可以分为两种
3综合属性 ↑ C ↑C ↑C是综合属性符号 ↑ ↑ ↑为综合属性标记 c c c为属性变量或者属性值 求值规则综合属性是自右向左自底向上求值 p,q,r为属性变量名。 属性变量名局部于每个产生式也可使用不同的名字。
4继承属性 5举例 3、 L-属性翻译文法L-ATG
1概念
这是属性翻译文法中较简单的一种。其输入文法要求是LL(1)文法可用自顶向下分析构造分析器。在分析过程中可进行属性求值。
2求值规则
继承属性 产生式左部非终结符号的继承属性值取前面产生式右部该符号已有的继承属性值。 产生式右部符号的继承属性值用该产生式左部符号的继承属性或出现在该符号左部的符号的属性值进行计算。综合属性 产生式右部非终结符号的综合属性值取其下部产生式左部同名非终结符号的综合属性值。 产生式左部非终结符号的综合属性值用该产生式左部符号的继承属性或某个右部符号的属性进行计算。 动作符号的综合属性用该符号的继承属性或某个右部符号的属性进行计算。
4、简单赋值形式的L-ATGSL-ATG
1概念
一个L-ATG被定义为简单赋值形式的(SL-ATG)当且仅当满足如下条件:
产生式右部符号的继承属性↓是一个常量它等于左部符号的继承属性值或等于出现在所给符号左边符号的一个综合属性值。产生式左部非终结符号的综合属性是一个常量它等于左部符号的继承属性值或等于右部符号的综合属性值。 例子 改进方法把求值函数变成一个动作f。