有穷自动机(Finite Automate)及其分类和转化

有穷自动机(Finite Automate)及其分类和转化

自我理解

有穷自动机在我目前浅薄的知识看来就是在词法分析阶段对程序中所有出现的单词进行逐一判断和分类,如果一个单词能被某个有穷自动机接收的话,那么它就是某一类单词,如果所有有穷自动机都不能接收它的话,它就不符合语法

有穷自动机分类

虽说有穷自动机有分类,但是他们其实是可以相互转换的.

  • 确定的有穷自动机(Deterministic finite automate,DFA)
  • 不确定的有穷自动机(Nondeterministic finite automate,NFA))
    • 不带空边的NFA
    • 带空边的NFA

确定的有穷自动机DFA

有穷自动机(Finite Automate)及其分类和转化_第1张图片

不带空边的NFA

有穷自动机(Finite Automate)及其分类和转化_第2张图片

带空边的NFA

有穷自动机(Finite Automate)及其分类和转化_第3张图片

有穷自动机的转换

DFA和不带空边的NFA之间的转换

有穷自动机(Finite Automate)及其分类和转化_第4张图片

不带空边的NFA和带空边的NFA之间的转换

有穷自动机(Finite Automate)及其分类和转化_第5张图片

你可能感兴趣的:(编译原理,确定有穷自动机,非确定性有穷自动机,编译器,面试)