词法分析是把构成源程序的字符串转换成单词符号序列。词法规则可用3型文法(正规文法)或正规表达式描述,他产生的集合是语言基本字符集Σ(字母表)上的字符串的一个子集,称为正规集。
正规式是一种表示正规集的工具,正规式是描述程序语言单词的表达式,对于字母表Σ。
正规式(正规表达式)的运算符有3个,优化级从高到低顺序排列为:*(闭包)、·(连接,可省略)、|(或)。
正规式 → 正规集
ab → 字符串ab构成的集合
a|b → 字符串a、b构成的集合
a* → 由0个或多个a构成的字符串集合
(a|b)* → 所有字符a和b构成的串的集合
a(a|b)* → 以a为首字符的a、b字符串的集合
(a|b)*abb → 以abb结尾的a、b字符串的集合
有限自动机可以转换为正规式,正规式也可以转换为有限自动机。
词法分析器的构造步骤:
1)用正规式描述语言中的单词构成规则。
2)为每个正规式构造一个NFA,它识别正规式所表示的正规集。
3)将构造出的NFA转换成等价的DFA。
4)对DFA进行最小化处理,使其最简。
5)从DFA构造词法分析器。
网友评论