java – 有限状态机程序
发布时间:2020-12-15 04:51:31 所属栏目:Java 来源:网络整理
导读:我的任务是创建一个小程序,它可以从输入中读取FSM的定义,从输入中读取一些字符串,并根据定义确定FSM是否接受这些字符串.我需要用C,C或 Java来编写它.我已经在网上搜索了如何入门的想法,但我能找到的最好的是 Automata-based programming上的维基百科文章.提
我的任务是创建一个小程序,它可以从输入中读取FSM的定义,从输入中读取一些字符串,并根据定义确定FSM是否接受这些字符串.我需要用C,C或
Java来编写它.我已经在网上搜索了如何入门的想法,但我能找到的最好的是
Automata-based programming上的维基百科文章.提供的C示例似乎使用枚举列表来定义状态,如果状态很难就没关系提前编码.同样,我需要能够实际读取状态的数量和每个状态应该做的定义.任何建议表示赞赏.
更新: 问题摘要: >我如何实施FSA? 解决方法
首先,获取所有状态(N个)的列表,以及所有符号(M个)的列表.然后有两种方法,解释或代码生成:
>口译.创建一个NxM矩阵,其中矩阵的每个元素都填入相应的目标状态编号,如果没有则填充-1.然后只需要一个初始状态变量并开始处理输入.如果你达到-1状态,你就失败了.如果输入符号用完而没有进入成功状态,则会失败.否则你就成功了. 如果你想要比2更快的东西,这肯定会让你不及格(!),摆脱状态变量,而是使用goto :-)如果你不知所措,你可以安慰自己知道这是编译器做的. 附:如果您在状态图中识别出循环等并打印出相应的while和if语句,而不是使用goto,则可以将F更改为A. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |