编译原理3学习课件.pptVIP

  • 33
  • 0
  • 约9.33千字
  • 约 52页
  • 2016-12-06 发布于江苏
  • 举报
第3章 有穷自动机 (自动机是一种能进行运算并能实现自我控制的装置,是描述符号串处理的强有力的工具。本章介绍有关有穷自动机的基本概念和理论以及正规文法、正规表达式和有穷自动机之间的相互关系) 3.2 NDFA到DFA的转换 3.3 正规文法与有穷自动机 3.4 正规表达式与FA 3.5 DFA在计算机中的表示 矩阵表示法 表结构 (1)正则文法G?有穷自动机A ①令正规文法G的终结符号集作为有穷自动机A的字母表。 ②文法G的每一个非终结符都作为自动机A的一个状态,特别是文法G的开始符号作为自动机A的开始状态。 ③在自动机A中增加一个新状态Z作为自动机的终止状态。 ④对于文法G的形如U::=aV的产生式,在自动机A中构造形如t(U,a)=V的映射。 ⑤对于文法G的形如U::=a的产生式,在自动机A中构造形如t(U,a)=Z的映射。 例:求与文法G[S]等价的NFA G[S]: S→aA|bB|ε A→aB|bA B→aS|bA|ε S Z A B start a a a b b b ε ε 求得: (2)有穷自动机A ?正则文法G ①自动机每一个状态的标记,均作为正规文法的非终结符,其中,自动机开始状态的标记作为正规文法的开始符号。自动机的输入字母表中的所有符号,作为正规文法的终结符。 ②对于自动机的映射t(U,a)=V,构造文法的一条产生式 U::= a V ③对于自动机的终止状态Z,在正规文法中增加一条产生式 Z::=ε 例:给出如图NFA等价的正规文法G A B C D start a a a b b b b G=({A,B,C,D},{a,b},P,A) 其中P: A aB A bD B bC C aA C bD C ε D aB D bD D ε → → → → → → → → → 正规表达式和正规集合的递归定义 有字母表?, 定义在? 上的正规表达式和正规集合递归定义如下: 1. ?和?都是? 上的正规表达式, 它们所表示的正规集合分别为:{?}和?; 2. 任何a? ? , a是? 上的正规表达式,它所表示的正规集合为:{a}; 3. 假定U和V都是 ? 上的正则表达式, 它们所表示的正则集合分别记为 L(U)和L(V), 那么U|V, U?V和U*也都是? 上的正则表达式, 它们所表示 的正则集合分别为L(U) ?L(V)、 L(U) ? L(V)和L(U)* 4. 任何? 上的正规表达式和正规集合均由1、2和3产生。 正则表达式中的运算符: | --- 或(选择) ? ---- 连接 * --- 重复 / () ---- 括号 运算符的优先级: 先*(闭包), 后 ?(连接) , 最后 |(或) ? 在正则表达式中可以省略. 正则表达式相等? 这两个正则表达式表示的语言相等 例:设 ? = { a,b },下面是定义在?上的正规表达式和正规集合 正规表达式 正规集 ba* {b , ba , baa , baaa , …} a(a|b)* {a , aa , ab , aaa , aab , aba , abb , …} (a|b)*(aa|bb)(a|b)* {aa , bb , aaa , baa , abaaba , abbaab , …} 正则表达式的性质: 设e1, e2和e3均是某字母表上的正则表达式, 则有: 单位正则表达式: ? ?e = e? = e

文档评论(0)

1亿VIP精品文档

相关文档