最近,作为我日常工作的一部分,我一直在学习 IBM Rhapsody 并使用它从 UML 生成 C++ 代码。
昨天让我感到震惊的是,考虑为我的 C++ 编译器添加状态机支持可能很酷,所以我在这里记下了一些笔记:http: //ellcc.org/wiki/index.php/State_machines_and_Active_Classes
我这样做的动机是:
- 这似乎是一个很酷的主意。
- 与当前的 Rhapsody/普通 C++ 编译器相比,该编译器可以进行更好的语义检查(具有更好的错误检查)。
- 当编译器本身理解状态机结构时,有许多优化可能性可用。
我可能会尝试将我的语法扩展到除提案之类的内容之外,看看它的效果如何。
您对该提案有何看法?它看起来可读吗?看起来值得吗?
编辑:
感谢您推荐特定库来执行状态机的答案,但这不是我的问题。我已经使用我编写的库和代码实现了许多状态机。
我真的在寻找关于将状态机扩展设计为类 C++ 语言的想法、批评等,而不是这种更改是否适合添加到标准 C++ 中。将其视为特定于域的扩展,我的域是实时控制应用程序。
我已经开始在我的编译器中实现扩展,如下所述:http: //ellcc.org/wiki/index.php/State%5Fmachines%5Fand%5FActive%5FClasses
到目前为止,从提案到实施,这个概念没有太大变化,但在细节上发生了一些变化,我正在完善我对问题语义的理解。
然而,时间会证明整个概念是否有价值。;-)