自动机专题

这里是针对注释、标识符、实常数的识别,各实现一个有穷状态自动机。

其实,可以将注释、标示符、实常数三个有穷状态自动机合并成一个自动机,将三种情况下的状态进行合并,针对每种状态在各种字符的条件下进行相关判断(case…)。即可完成统一的有穷状态自动机的实现。

介绍自动机编程

自动机编程的原理,我个人认为是:非自动解决问题的方法是将一个问题顺序处理,做整体处理。而运用自动机方法进行解决问题时,是将问题按照状态的单位进行拆分,然后针对每种状态进行讨论,对各种状态讨论完,问题即得到解决完。当然前提是问题需要对应于一个确定的有穷状态自动机。

一个有限状态自动机的C语言实现

利用有穷状态自动机实现一个C++语言的词法分析程序

自动机可以用状态转换图、状态转换表等工具进行描述。

编程论坛中自动机标签的文章

百度空间中一利用有穷状态自动机来识别输入字符串是否为有效的无符号定点实数。

Matrix67介绍的一个好玩的自动机编程游戏

阮一峰的一篇关于Javascript和有限自动机的文章。

利用自动机编程解决问题的关键

自动机一个很强大的工具,利用自动机可以解决很多难以解决、解决起来复杂的问题。在利用自动机解决一个问题之前,首先要对该问题认识清楚,分析里面可以划分几个状态,各个状态之间是如何转换的,划出相应的状态装换图或状态转换表等。然后针对各个状态和状态之间的转移条件进行编程实现。

关于自动机为什么能够很好的解决用其他方法难以解决的问题,我的理解是自动机是将问题进行了拆解、平摊,使得我们可以操作的信息更多了,这样也就使得解决的逻辑变得清晰自然,实现起来也比较简单了。或许这就是工具的魅力吧。好的工具不是把你要解决的问题搞得更复杂,而是使得你的问题变得简单清晰。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐