《编译原理》学习总结--第三章

《编译原理》学习总结--第三章  词法分析

一 词法分析
    1.词法分析的几个概念
        词法分析的任务:
       从左至右逐个字符的对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为由单词符号串组成的程序。
        词法分析器:执行词法分析的程序
                      输入:源程序
                      输出:单词符号

        源程序-词法分析器 -单词符号

        单词的表示形式:<单词种别,单词符号的属性值>
    2.词法分析器
        扫描缓冲区中的通过起点指针和搜索指针来寻找单词,扫描器识别单词
        超前搜索:在单词识别的过程中,通过向前多读几个符号的形式,准确的进行单词的识别 一旦确定识别到的单词之后,需要进行扫描指针的回退,保证单词识别工作的顺利进行
        直接分析法:根据读来的第一个字符的种类分别转到各种子程序处理。这些子程序功能就是识别以相应字符开头的各种单词
        状态转换图:通过一张有限方向图来识别(接受)一定的符号串(单词)。
        状态转换图组成:结点(有终态(双圆圈)、初态)、箭弧、箭弧上的标记。结点就是状态,通过箭弧上的标志(输入字符)进行状态的转换。

        正规集:具有相同特征的字放在一起组成的一个集合
        正规式:表示正规集的一种形式化的方法
二.自动机
        确定的有限自动机(DFA)与非确定的有限自动机(NFA)的区别在于映射不同,非确定的有限自动机初态是一个非空集合,而确定的有限自动机的初态是唯一的。

         有限自动机:一个 确定有限自动机(DFA)M是一个五元式:M = (S, ∑, f, s0, F),其中S是一个有限的状态集合,它的每个元素我们称为一个状态,∑是一个有穷的输入符号的字母表,它的每个元素我们称为一个输入字符,f是从 S×∑ →S的单值部分映射,s0是S的一个元素,为初始状态,它是唯一的,状态集合F是终止状态的集合,它是S的子集(可空)。
        非确定的有限自动机:它与DFA的区别就在于f是从S×∑*→2^S 的部分映射,其中,2S表示S的幂集合(所有S的子集组成的集合)(f是非单值的,M是非确定),状态集合S0是初始状态集合,它是S的子集。


 

猜你喜欢

转载自blog.csdn.net/la9115428/article/details/79821845