词法分析程序(lexical analysis program)是 将字符序列转换为单词(Token)序列的过程。它执行词法分析任务的程序称为词法分析器(Lexical analyzer,简称Lexer),也叫扫描器(Scanner)。词法分析器一般以函数的形式存在,供语法分析器调用。
词法分析器从左至右地对源程序进行扫描,按照语言的词法规则识别各类单词,并产生相应单词的属性字。词法分析的任务包括:
1. 从左至右逐个字符地对源程序进行扫描。
2. 识别并产生一个个单词符号。
3. 把字符串形式的源程序改造成为单词符号串形式的中间程序。
4. 输入源程序,输出单词符号。
词法分析器可以通过手工构造或自动生成两种方法实现。手工构造可使用状态图进行工作,自动生成则使用确定的有限自动机来实现。词法分析程序的输出通常是一组标记序列,每个标记代表源代码中的一个单词或符号。
词法分析是编译过程的首要阶段,为后续的语法分析和语义分析做准备。词法分析器在计算机科学和语言学中扮演着重要角色,帮助理解和处理源代码中的单词和符号。