先了解有限状态机(FSM)
编译器就是用有限状态机做词法分析
有限状态机就是一个集合很多状态的机器,根据不同的输入产生不同的状态转变,通过这些状态的转变来体现出每次用户操作的特殊性。状态的产生和改变都是由某种条件成立而出现的
有限自动机(有穷自动机,时序机):
有限自动机M由五元组(X,Y,S,δ,λ)
- X,Y是S的非空有限集
- X:输入集
- Y:输出集
- S:状态集合
- δ:笛卡尔积SxX到S的映射,也叫M的下一状态函数
- λ:SxY到Y的单值映射,也叫M的输出函数
有限自动机 = 内部状态集+控制规则
有限状态机识别字符串:
比如:源代码一个语句为输入字符串,判断其是否能使用有限自动机从初始状态到终状态结束,能,则可以被识别
状态转换图是一个有向图,每个节点表示一个状态,每一个状态转换都对应一个弧
分类:
确定的有限自动机和不确定的有限自动机: