从零开始学compiler--3--3--Regular Language

来源:互联网 发布:建造者模式java 编辑:程序博客网 时间:2024/06/04 18:34

正则表达式,是词法分析的基础,tiger book中说正则表达式是用来以有限的语言形式来表述有无限可能的语言的工具。

正则表达式分为basic型和compound型。

basic型主要包括两种,single character和Eplison(ε)

single character 单字符:就是拥有一个字符的表达式例如 c就是{“c”}

Eplison(ε):表示仅含一个空字符串的表达式,注意不是没有表达式,而是一个空字符串是“”

compound型主要有:Union 、concatenate 、iteration

Union 并集 A+B={a|a∈A}∪{b|b∈B}

concatenate 连接 A·B={ab|a∈A,b∈B}

iteration * 0*=""+"0"+"00"+"0"(i个)+·······

不过这个归类不是很清晰全面,可以参看tiger book的一段作为补充

另外附一些缩写形式的介绍
[abcd]=[a|b|c|d]        [a-f]=[abcdef]]            [a-fA-Ck]=[abcdefABCk]       M?=m|ε          M+=M·M*     ‘abcd’=abcd

 

 

0 0