词法分析程序(Lexical Analyzer,简称Lexer)是 将字符序列转换为单词(Token)序列的过程。它一般以函数的形式存在,供语法分析器调用。词法分析器从左至右地对源程序进行扫描,按照语言的词法规则识别各类单词,并产生相应单词的属性字。
词法分析的任务包括:
1. 对输入的字符串形式的源程序按顺序进行扫描。
2. 根据源程序的词法规则识别具有独立意义的单词(符号)。
3. 产生与其等价的属性字流作为输出。
词法分析器可以手工构造或自动生成。手工构造可使用状态图进行工作,自动生成则使用确定的有限自动机来实现。
词法分析是编译过程中的一个阶段,可以在语法分析前进行,作为语法分析的必要准备。词法分析的结果通常用于生成符号表和常数表,并将源程序换码为编译程序易于分析和加工的内部形式。
总结:
词法分析程序是编译器中的一个重要组件,负责将源代码分解成有意义的单词(Token),为后续的语法分析和语义分析提供基础。