第三讲 元程序设计 程序分析技术 研究生课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
‘x v’
‘0 c’
>
‘y v’
‘0 c’
else then
:=
+ ‘x
v’ ‘x
‘1
8
五、元级操作
1.低级元操作
1)类型识别操作
• 给结点的类型 • 判定结点是否为给定的类型 • 空结点定位
2)成份选择操作
• 选择某一结点(满足条件) • 表元素的选择
9
3)构造操作
• 按某一结构构造结点。
4)关系操作
11
按照 A→X1…Xn 归约时 状态为
Xi的结点已经构造好文法,结点指针未填
规约后,Xi结点指针添加,A结点指针均空
Xi退栈 A进栈
d→
Xn
. . .
X1
Sem栈
12
• 给定两结点,判断它们的关系。 • 给定结点和关系,判断是否存在结点。
5)编辑操作
• 插入,删除,查找,修改
6)词汇强制
2. 高级元级操作
可根据特定的需要,构造许多特殊的高级操作。 如:控制流图,函数调用关系图等
10
六、系统的自动生成
• 利用语法制导的方法生成 • 系统由两部分组成
–生成中间表示部分 –元级操作部分(可事先设计好)
程序分析技术
第三讲: 元程序设计
二、元程序
• 元程序概念
处理程序的程序
• 元程序系统的组成:
1. 预处理:把源程序变成一种中间表示 (经过词法分析,语法分析)
2. 元级操作:提供最基本的操作(根据 需求,用户可选择如何操作)
3. 后处理:有必要把中间表示转为源代
码
4
三、中间表示
• 四元式: (op,a,b,t)
是结构规则的特例,因为每次只能用一个 规则
6
3. 表规则
<P>
A→ E|E,A (也可左递归)
构造双向链表操作更方便
Hale Waihona Puke Baidu
t1
A
t2
^
E1 t3
4. 词汇规则
<P>
A→ lex
E2
t4
^ E3
7
实例
while x>0 do if y>0 then x:=x+1 else y:=y+1
>
while if
例 a*(b+c)+d
(+,b,c,t1),(*,a,t1,t2),(+,t2,d,t3)
• 逆波兰式: 后缀式
上例 •树
上例
abc+*d+ +
*
d
a
+
b
c
5
四、规则分类和对应的结构
1. 结构规则(构造规则)
<P>A→ X1X2……Xn
A
…
2. 选择规则
X1
X2
Xn
<P>A→ X1|X2|……|Xn