词法分析(英语:lexical analysis)是计算机科学中将字符序列转换为标记(token)序列的过程。
词法分析器通常不会关心标记之间的关系(属于语法分析的范畴),举例来说:词法分析器能够将括号识别为标记,但并不保证括号是否匹配。
针对如下C语言表达式:
sum=3+2
形象地来说,将其标记化后可以得到下表内容:
再深入来说的话,词法分析器读入组成源程序的字符流,并且将它们组织成为有意义的词素(lexeme)的序列。
对于每个词素,词语言处理器(token)作为输出:
〈token-name,attribute-value〉
比如说:
在这个词法单元中,第一个分量token-name是一个由语法分析步骤使用的抽象符号,而第二个分量atribute-value指向符号表中关于这个词法单元的条目。
这个词法单元被传送给下一个步骤,即语法分析。符号表条目的信息会被语义分析和代码生成步骤使用。