问题标签 [fsm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JBoss/Java 的状态机框架?
我们正在开发一个涉及许多不同测试的应用程序,其中每个测试都会引导用户执行多个步骤。我们正在考虑使用状态机框架从代码中捕获状态/转换。我们也在考虑使用规则引擎来补充规则。任何人都有任何可以与 JBoss 和/或 Java 一起使用的状态机框架的经验吗?提前致谢。
-阮
c++ - 在 C++ 状态机中实现事件条件
我将分层 FSM 用于嵌入式 C++ 应用程序接口。我想使用小函数来确定是否可以触发某些状态间事件,以及使用它们来影响数据库中的更改:但是,为每个状态创建一个具有不同事件函数的新类也令人生畏将指向它们的指针设置为回调。(我们在这里谈论 300 个函数。)
如果 C++ 支持 lambda 函数,我会使用它们,但我对项目架构没有太大的权重,所以我不愿意使用需要大量库集成(如 boost)或包含的第三方解决方案额外的预处理器步骤。
有任何想法吗?
regex - RE -> FSM 生成器?
给定一个正则表达式,我正在寻找一个包,它将为实现 RE 的有限状态机动态生成代码。
首选 C/C++ 和 Python,但其他语言也很有趣。
regex - 如何确定一个正则表达式是否与另一个正则表达式正交?
我想我的问题最好用一个(简化的)例子来解释。
正则表达式 1:
正则表达式 2:
正则表达式 1永远不会匹配正则表达式 2 匹配的字符串。因此,假设正则表达式 1与正则表达式 2正交。
正如许多人问我所说的正交是什么意思,我将尝试澄清它:
令S1为正则表达式 1 匹配的(无限)字符串集。 S2是正则表达式 2 匹配的字符串集。如果S1 和 S2 的交集为空,则正则表达式 2 与正则表达式 1 正交。正则表达式 ^\d_a$ 不会是正交的,因为字符串 '2_a' 在集合 S1和S2 中。
如果两个正则表达式相互正交,如何以编程方式确定?
最好的情况是一些实现如下方法的库:
regex - 正则表达式转换为状态机的简短示例?
在 Stack Overflow 播客 #36 ( https://blog.stackoverflow.com/2009/01/podcast-36/ ) 中,表达了这种观点:一旦您了解设置状态机是多么容易,您就会永远不要再尝试不恰当地使用正则表达式。
我做了一堆搜索。我找到了一些学术论文和其他复杂的例子,但我想找到一个简单的例子来帮助我理解这个过程。我使用了很多正则表达式,并且我想确保我永远不会再“不恰当地”使用一个。
ruby-on-rails - 在 Rails 上验证有限状态机(使用 AASM)
我正在使用Rubyist的 AASM 为 AR 对象构建一个 4 步向导。根据对象的状态,需要进行不同的验证。根据某个转换的状态来验证对象的最聪明的方法是什么?
fsm - FSM数据结构设计
我想编写一个 FSM,它以空闲状态开始,并根据某些事件从一种状态移动到另一种状态。我不熟悉 FSM 的编码,谷歌没有帮助。感谢有人可以发布可用于相同的 C 数据结构。
谢谢, syuga2012
c# - 使用“yield”关键字实现状态机
使用 yield 关键字来实现一个简单的状态机是否可行,如此处所示。在我看来,C# 编译器似乎为您完成了艰苦的工作,因为它在内部实现了一个状态机来使 yield 语句工作。
你能在编译器已经在做的工作之上搭载它并让它为你实现大部分状态机吗?
有人做过吗,技术上可行吗?
theory - 有限时间内两个 FSM 等价的一般证明?
是否存在两个(确定性)有限状态机的等价性且总是需要有限时间的一般证明?也就是说,给定两个 FSM,你能否证明给定相同的输入,它们总是会产生相同的输出,而实际上不需要执行 FSM(这可能是非终止的?)。如果确实存在这样的证明,那么时间复杂度是多少?
c# - C# 是否包含有限状态机?
我最近阅读了有关boost::statechart
库(有限状态机)的内容,我喜欢这个概念。
C# 有类似的机制吗?还是可以使用特定的设计模式来实现?