f
a
b
-0 1 2
132
213
+3 3 3
状态转换表的行标表示状态,列标表示输入 符号,表元素表示f(W,a)的值。
19
定义4.6 字母表V上的状态图SG是如下有向图:
(1)至少有一个初始结点,用“-”标记; (2)至少有一个终止结点,用“+”标记;
确定,可全体编为一类,称作“一字一类”) ②标识符:用户定义的常量名、变量名、过程名和
类型名(个数不确定,作为一类,称作“一符一 类”) ③常量:12,1997,4.14,‘A’,‘scnu’等(个数不 确定,按类型分类) ④运算符 +,-,*,/, >,>=,<,<=,#等(个数 确定,“一符一类”) ⑤界限符 ;,()等(个数确定,“一符一类”)
5
词法分析程序输出的单词符号通常用二元式 表示:(单词种别,单词自身的值)
单词种别:表示单词种类,常用整数编码, 它是语法分析需要的 单词自身的值:是编译中其他阶段所需要 的信息
6
(4)词法分析程序的设计过程
3G 3型文法 RE 正则表达式
3G RE
SG 状态图 εFA ε确定自动机
εDFA
εNFA ε非确定自动机
A→0S|1A|ε A=ε+0S+1A ② 解:
17
4.3 有穷自动机(FA)
(1)确定有穷自动机(DFA) 定义4.5 一个确定有限自动机(DFA)M是一个五元 组:M=(K,VT,f,S,Z) 其中 K:有穷状态集; VT:有穷的输入字母表; f:K×VT→K是状态转换函数,即f(W,a)=U
(ba)*b ={(ba)nb|n≥0} b(ab)* =(ba)*b
11