22词法记号的描述与识别 221串和语言 字母表:符号的有限集合,例:∑={0,1} 串:符号的有穷序列,例:0110,ε 语言:字母表上的一个串集 {e,0,00,000,},{e},z 句子:属于语言的串 串的运算 连接(积)x,s=ε=s 幂 s为8,s为sls(i>0)
2.2 词法记号的描述与识别 2.2.1 串和语言 – 字母表:符号的有限集合, 例: = { 0, 1} – 串:符号的有穷序列,例:0110, – 语言:字母表上的一个串集 {, 0, 00, 000, …}, {}, – 句子:属于语言的串 • 串的运算 – 连接(积) xy,s = s = s –幂 s 0为,s i为s i-1s(i > 0)
22词法记号的描述与识别 语言的运算 并 L∪M={s|s∈L或s∈M} 连接: LM={ss∈L且t∈M} 幂 L0是{},L是LL 闭包: L*=L0∪L∪L2∪ 正闭包:L+=L1∪L2U 例 L:{A,B,…,Z,a,b,…,z},D:{0,1,…,9} L∪D,LD,L6,L,L(L∪D),D+
2.2 词法记号的描述与识别 • 语言的运算 –并: L M = {s | s L 或 s M } –连接: LM = {st | s L 且 t M} – 幂: L0是{},Li是Li-1L –闭包: L = L0 L1 L2 … – 正闭包: L+ = L1 L2 … • 例 L: { A, B, …, Z, a, b, …, z }, D: { 0, 1, …, 9 } L D, LD, L6 , L* , L(L D ) * , D+
22词法记号的描述与识别 222正规式 正规式用来表示简单的语言,叫做正规集 正规式 定义的语言备注 ca 18 ∈ ∑ (r)|(s) L(rUL(S r和s是正规式 (r)(S) L(L(S) r和s是正规式 (L(r) r是正规式 L( r是正规式 (a)(b)(c)可以写成abc
2.2 词法记号的描述与识别 2.2.2 正规式 正规式用来表示简单的语言,叫做正规集 正规式 定义的语言 备注 {} a {a} a (r) | (s) L(r)∪L(s) r和s是正规式 (r)(s) L(r)L(s) r和s是正规式 (r) * (L(r)) * r是正规式 (r) L(r) r是正规式 ((a) (b) *)| (c)可以写成ab * | c
22词法记号的描述与识别 °正规式的例子∑={a,b a b (a|b)(a|b) Raa, ab, ba, bbj aa ab ba bb aa, ab, ba, bby 由字母a构成的所有串集 (a|b) 由a和b构成的所有串集 复杂的例子 (00|11((01|10)(00|11)*(01|10)))* 句子:01001101000100001001
2.2 词法记号的描述与识别 • 正规式的例子 = {a, b} – a | b {a, b} – (a | b) (a | b ) {aa, ab, ba, bb} – aa | ab | ba | bb {aa, ab, ba, bb} – a * 由字母a构成的所有串集 – (a | b) * 由a和b构成的所有串集 • 复杂的例子 ( 00 | 11 | ( (01 | 10) (00 | 11) (01 | 10) ) ) 句子:01001101000010000010111001
22词法记号的描述与识别 223正规定义 对正规式命名,使表示简洁 → d2→ dn→>rn 各个d的名字都不同 每个r都是∑∪u{1,d2,…,dl1}上的正规式
2.2 词法记号的描述与识别 2.2.3 正规定义 – 对正规式命名,使表示简洁 d1 r1 d2 r2 . . . dn rn –各个di的名字都不同 –每个ri都是 {d1 , d2 , …, di-1 }上的正规式