词法分析
在词法分析这一章主要通过学习了词法分析、正规表达式和有限自动机来了解词法分析器的构造。
词法分析器是执行词法分析的程序。将源程序输入词法分析器后,词法分析器从左至右逐个字符的对源程序进行扫描,输出相应的单词符号,把字符串形式的源程序改造成为由单词符号串组成的程序。输出的单词符号一般分为:基本字(保留字、关键字)、标识符、常数、运算符、界符。通常用二元式表示:<单词种别,单词符号的属性值(反映单词特性或特征的值)>。下图为词法分析器的结构图:
根据上图简单介绍词法分析器的工作流程。将源程序输入词法分析器之后,为方便单词识别很多情况下都会把源程序放入输入缓冲区中进行预处理。将输入串中的无用的空白、跳格(TAB)、回车、换行等编辑性字符以及注释行剔除(若空白符号为单词符号的界符,就将若干空白和并为1个),处理之后源程序变为一段确定长度的输入字符。将输入字符放入缓冲区中进行单词识别,单词识别主要有3种方法:超前搜索——在单词识别的过程中向前多读几个符号,这种方式相对准确,但是扫描指针需要多次回退;直接分析法——根据读到的第一个字符的种类转到不同的子程序处理,通过条件判断的方式提高效率;状态转换图法——使用状态转换图设计词法分析程序。状态转换图法是一种