3.3.1正规文法p 口程序设计语言中几类单词的规则描述: 口〈标识符>→11<字母数字> <字母数字>→1d1<字母数字>d<字母数字> 0 <无符号数>→dd<无符号数> 0 运算符〉→+-*/八=<<等号>>〈等号>. 人等号〉→= <界符>→,:|(). 25.4.2 ✉26
25.4.2 26 3.3.1 正规文法 p 程序设计语言中几类单词的规则描述: <标识符>→ l|l <字母数字> <字母数字>→l|d|l <字母数字>|d <字母数字> <无符号数>→d|d <无符号数> <运算符> →+|-|*|/|=|< <等号>|> <等号>. <等号>→= <界符>→,|;|(|)|
3.3.2正规式和正规集p45 对于字母表∑,正规式和正规集的递归定义为: 说明 正规式r 正规集L(r) 1.Λ是空符号 ε,△ {e},φ 2.若a∈∑ a {a} 3.若u,v是正规式对 w(或 L()UL() 应正规集是 u·v(连接) L(u)L(v) L(u),L(v) u*(闭包) L(u)* 4.仅由有限次使用上述三步骤而得到的表达式才是Σ上的正规式 ,仅由这些正规式所表示的字集才是∑上的正规集 25.4.2 >a27
25.4.2 27 3.3.2正规式和正规集 p45 对于字母表∑,正规式和正规集的递归定义为: 说明 正规式 r 正规集L(r) 1.∧是空符号 ε,∧ {ε},φ 2.若a∈∑ a {a} 4.仅由有限次使用上述三步骤而得到的表达式才是∑上的正规式 ,仅由这些正规式所表示的字集才是∑上的正规集 u|v(或) L(u)∪L(v) u● v (连接) L(u)L(v) u * (闭包) L(u)* 3.若u,v是正规 式对 应正规集是 L(u),L(v)
正规式和正规集举例 设∑={0,1} 正规式 正规集 0 {0} 1 {1} 01 {0}U{1} {0,1} 01 0}{1) {01} 10 {1}{0 {10} 0* {0}* {e,0,00,000,. 1* {1* {e,1,11,111,.} 25.4.2 ✉习28
25.4.2 28 正规式和正规集举例 设 ∑={0,1} 正规式 正规集 0 {0} 1 {1} 0|1 {0}∪{1} {0,1} 01 {0}{1} {01} 10 {1}{0} {10} 0 * {0}* {ε,0,00,000,.} 1 * {1}* {ε,1,11,111,.}
正规式和正规集举例p45 例3.2 o设∑={a,b} 正规式 正规集 a {a} a b {a,b} ab {ab} (a b)*{a,b}*{s,a,b,aa,ab,ba,bb,aaa,., 所有由a,b组成的串} 25.4.2 >a29
25.4.2 29 正规式和正规集举例 p45 例3.2 设 ∑={a,b} 正规式 正规集 a {a} a|b {a,b} ab {ab} (a|b) * {a,b} * {ε,a,b,aa,ab,ba,bb,aaa,., 所有由a,b组成的串}
正规式和正规集举例p45 例3.2 0 设∑={a,b} 正规式 正规集 ba* ∑上所有以b为首后跟任意多个a的字 a(alb)*∑上所有以a为首的字 (a b)*(aa bb)(a b)* ∑上所有含有两个相继的a或两个相继的b的字 0 设∑={A,B,0,1 正规式 正规集 (A|B)(AB01)*∑上的“标识符”的全体 (01)(01)*∑上的“数”的全体 25.42 ①>30
25.4.2 30 正规式和正规集举例 p45 例3.2 设 ∑={a,b} 正规式 正规集 ba* ∑上所有以b为首后跟任意多个a的字 a(a|b) * ∑上所有以a为首的字 (a|b) *(aa|bb)(a|b) * ∑上所有含有两个相继的a或两个相继的b的字 设∑={A,B,0,1} 正规式 正规集 (A|B)(A|B|0|1)* ∑上的“标识符”的全体 (0|1)(0|1)* ∑上的“数”的全体