19
五、静态的分析过程
• 词法分析 • 语法分析 • 所需要的分析
20
程序分析技术
第二讲 编译原理基础
大
• • • • • 基本概念 正则表达式 自动机理论 文法概述 语法分析 – 自顶向下 – 自底向上
纲
22
1 基本概念
• 字母表: ∑,元素的非空有穷集合。 • 符号串:由字母表中的符号组成的任何有 穷序列。或者如下定义: 1. 空符号串ε 是上的符号串 2. 若x是上的符号串,a是的元素,则xa是 上的符号串 3. y是上的符号串,当且仅当它可以由1和2 导出
31
单词的一种分类方法
32
识别常数的自动机
+
A
数字
数字
B E
数字
数字
数字
C
小数点
D
注:未考虑前导0的情形
33
4 文法概述
• 文法能清晰地描述程序设计语言的语法构 成,易于理解。 • 文法能构造有效的语法分析器,检查源程 序是否符合语言规定的语法形式。 • 文法定义可以了解程序设计语言的结构, 有利于将源程序转化为目标代码及检查出 语法错误。 • 基于文法实现的语言易于扩展
25
2 正则表达式
• 定义:RE为定义在∑上的正则表达式则
– ∧,ε∈RE – 若a∈∑,则a∈RE – 若e1,e2∈RE,则e1·e2,e1|e2,e1+∈RE • 语义函数(解释函数)L L(∧)=Ф,L(ε)={ε} – 若a ∈ ∑则L(a)={a} – 若e1,e2∈RE则L(e1·e2)= L(e1)·L(e2) L(e1|e2)= L(e1)∪L(e2) L(e1+)= L+(e1)
程序分析技术