第三章 词法分析

1.总结

    这章学习词法分析,词法分析的任务就是按顺序逐个分析源程序的字符,将字符串组成的源程序转换成由单词符号组成的程序。由词法分析器进行词法分析,词法分析器中输入源程序,输出单词符号。

    而单词符号是什么呢。单词符号指语言中具有独立意义的最小语法符号,常分类:关键字、标识符、常数、运算符、界符。词法分析器输出的单词符号常用二元式表示,如<单词类别,单词的属性值>。

    源程序文本进入词法分析器后,先放入输入缓冲区存放,然后预处理子程序,剔除无用的空白回车注释等,预处理好的子程序就放入扫描缓冲区里,在扫描缓冲区里进行单词识别。

    单词符号的识别通过超前搜索的方式进行,向前多读一定一定数量的字符,确保识别完整的单词,确定识别的单词后,指针进行回退。

    词法分析器的设计思路包括直接分析(根据第一个字符确定单词种类)和状态转换图法,状态转换图能识别一定的符号串,通过识别的不同字符进行状态的转换。

    我们用正规集表示具有相同特征的字的集合,用来表示正规集的形式化方法就是正规式。

    状态转换图形式化表示为有限自动机,有限自动机是一种数学模型,包括确定的有限自动机(DFA)和非确定的有限自动机(NFA)。DFA的状态为单值映射,NFA部分为非单值映射。

2.习题

    8

    第三章 词法分析

7-2

    第三章 词法分析

    第三章 词法分析

    第三章 词法分析

    

第三章 词法分析

第三章 词法分析

3.感想

    通过学习这章,我了解了词法分析黑编洋程序过程中顿到的作用,明白了他的工作原理,但当具体做题的时候,我脑子懵的很,状态节点少题目简单的时候,习题做起来似乎很容易,但一旦复杂起来,节点的转换和推导就让人头晕。比如第七题第二小问,让我花费了很长间,期间因为拉下一个数据导致后面推导和画图全错了,又花费差不多的时间重做。但是化简的时候我还是有点迷糊,不是很懂,当确定一个子集内元素的闭包在同一个子集内,不可拆分之后,闭包所在子集拆分后,这个确定的子集是否重新判断拆分与否。书上写的也不是很明白,问同学,司学解释的也不清不楚的,不过我觉得应该是要再拆分的,直到所有子集不可拆分。

    另外上传的时候崩了一次,草稿箱也没全保存……