词法分析器的主要任务:
1.主要是负责字符流到记号流的转换。
2.过滤源程序中的空白和注释字符。
3.将编译器生成的错误与源程序的位置系统起来。
词法分析器实现方法

1.正则表达式
通过编写正则表达式的语法规范通过自动生成器变为词法分析器。
正则表达式构造规则:

语法糖

两个正则表达式R1R1R1,R2R2R2等价,是指两个表达式描述完全相同的语言,即R1R1R1,R2R2R2代表同一正则集。
2. 有限状态自动机(FA finite automaton)

DFA (Deterministic Finite Automaton)

有限状态自动机能识别正则语言。
NFA (Nondeterministic Finite Automaton)

DFA 与 NFA

DFA 可视作有向图,用邻接矩阵、邻接表进行表示


3.NFA构建

由RE -> NFA 包含
- 2种直接构造
- 3种递归构造

实例演示:

括号最先算,选择的优先级比连接要高:

NFA转DFA

在进行转换的过程中可以构造转换表进行转换。

博客介绍词法分析器,其主要任务是完成字符流到记号流转换、过滤空白和注释字符、关联错误与源程序位置。实现方法包括正则表达式,可通过自动生成器变为词法分析器;有限状态自动机,如DFA和NFA;还介绍了NFA构建及NFA转DFA的转换表构造。
4675

被折叠的 条评论
为什么被折叠?



