1 / 246
文档名称:

20大部门绩效考核指标设计全案.pdf

格式:pdf   页数:246页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

20大部门绩效考核指标设计全案.pdf

上传人:精品库 2015/10/15 文件大小:0 KB

下载得到文件列表

20大部门绩效考核指标设计全案.pdf

文档介绍

文档介绍:第六章属性文法和语法制导翻译
属性文法
基于属性文法的处理方法
S-属性文法的自下而上计算
L-树性文法和自顶向下翻译
自下而上计算继承属性
自下而上计算继承属性
讨论在自下而上的分析过程中实现L-属性文法的方法。
这种方法可以实现任何基于LL(1)文法的L-属性文法,它还可以实现许多(不是所有)基于LR(1)文法的L-属性文法。
从翻译模式中去掉嵌入在产生式中间的动作
介绍一种转换方法,它可以使所有嵌入的动作都出现在产生式的末尾,这样就可以自下而上处理继承属性。
转换方法是,在基础文法中加入新的产生式,这种产生式的形式为M→ε,其中M为新引入的一个标记非终结符。我们把嵌入在产生式中的每个语义动作用不同的标记非终结符M代替,并把这个动作放在产生式M→ε的末尾。
例如,下面翻译模式
E→T R
R→+T {print(‘+’)}R
| -T{print(‘-’)} R
| ε
T →num{print()}
E→TR
R→+ TMR | - TNR | ε
T →num { print() }
M→ε{ print (‘+’) }
N→ε{ print(‘-’)}
使用标记非终结符号M和N转换为
两个翻译模式中的文法接受相同的语言。通过画出带有表示动作的附加结点的分析树,可以看到动作的执行程序也是一样的。
在经过转换的翻译模式中,动作都在产生式右端的末尾,因此,可以在自下而上分析过程中产生式右部被归约时执行相应的动作。
分析栈中的继承属性
自下而上分析器对产生式A→XY的右部是通过把X和Y从分析栈中移出并用A代替它们。
,。
,这个值可以被Y继承。
也就是说,如果继承属性Y. i是由复写规则Y. i := ,。
我们将会看到,在自下而上分析中计算属性值时复写规则起非常重要的作用
下面例子说明复写规则的使用
假设某翻译模式为
D  T { := }
L
T int {T. type := integer}
T real {T. type := real}
L{ := }
L1, id {addtype (, )}
L id {addtype (, )}
。例如,对于输入串 int p, q, r 其属性的传递方向如图
D
T
L
L
,
r
L
,
q
p
int

type



in
in
in
=
输入串
状态
所用产生式
int p, q, r
-
p, q, r
int
p, q, r
T
T  int
, q, r
Tp
, q, r
TL
L id
q, r
TL,
, r
TL,q
, r
TL
L L,id
r
TL,
TL,r
TL
L L,id
D
D  TL
int p, q, r的分析过程