7、5.1词法规则形式化——正规集与正规式

1、回顾

  • 词法分析器的功能
    • 输入源程序、输出单词符号
  • 词法分析器的设计
    • 给出程序设计语言的单词规范——单词表
    • 对照单词表设计识别该语言所有单词的状态转换图
    • 根据状态转换图编写词法分析程序

正规式和正规集

  • 正规集可以用正规式表示
  • 正规式是表示正规集一种方法
  • 一个字集合是正规集当且仅当它能用正规式表示

正规式和正规集的递归定义

  • 对给定的字母表 Σ
    • ε 和 ∅都是 Σ上的正规式,它们所表示的正规集为 { ε } 和 ∅;
    • 任何 a∈Σ ,a是Σ上的正规式,它所表示的正规集为 {a} ;
    • 假定e1e2都是Σ上的正规式,它们所表示的正规集为L(e1)L(e2),则:
      • (e1|e2)为正规式,它所表示的正规集为L(e1)∪L(e2)
      • (e1.e2)为正规式,它所表示的正规集为 L(e1)L(e2)(连接运算)
      • (e1)*为正规式,它所表示的正规集为(L(e1))*
    • 仅由有限次使用上述三步骤而定义的表达式才是Σ上的正规式,仅由这些正规式表示的字集才是 Σ上的正规集。

正规式的等价性

  • 若两个正规式所表示的正规集相同,则称这两个正规式等价。如

                                                        b(ab)*=(ba)*b

    

 

正规式的性质

  • 对正规式,下列等价成立
    • e1|e2 = e2|e1 交换律
    • e1|(e2|e3) = (e1|e2)|e3 结合律 
    • e1(e2e3) = (e1e2)e3 结合律 
    • e1(e2|e3) = e1e2|e1e3 分配律 
    • (e2|e3)e1 = e2e1|e3e1 分配律 
    • eε = ε e = e             e1e2 <> e2 e1

 

 

posted @ 2022-11-25 19:16  多一些不为什么的坚持  阅读(331)  评论(0编辑  收藏  举报