建议添加对C++的状态机支持 - 就像语言一样

Ric*_*ton 1 c++ compiler-construction uml language-design state-machine

最近作为我日常工作的一部分,我一直在学习IBM Rhapsody并使用它从UML生成C++代码.

昨天让我感到震惊的是,考虑将状态机支持添加到我的C++编译器可能会很酷,所以我在这里写了一些注释:http://ellcc.org/wiki/index.php/State_machines_and_Active_Classes

我这样做的动机是:

  1. 这似乎是一个很酷的主意.
  2. 编译器可以比当前的Rhapsody /普通C++编译器做更好的语义检查(具有更好的错误检查).
  3. 当编译器本身理解状态机结构时,有许多可用的优化可能性.

我可能会尝试扩展我的语法,除了提议看看它的工作情况.

您对该提案有何看法?它看起来可读吗?看起来值得吗?


编辑:

感谢建议特定库来执行状态机的答案,但这不是我的问题.我已经使用我编写的库和代码实现了许多状态机.

我真的在寻找关于设计类似C++的语言的状态机扩展的想法,批评等,而不是这种改变是否适合添加到标准C++.可以将其视为特定于域的扩展,我的域名是实时控制应用程序.

我已经开始在我的编译器中实现扩展,如下所述:http://ellcc.org/wiki/index.php/State%5Fmachines%5Fand%5FActive%5FClasses

到目前为止,这个概念不需要从提议到实现有太大的变化,但细节上有一些变化,我正在完善我对问题语义的理解.

然而,时间将证明整个概念是否具有任何价值.;-)

小智 9

除了少数例外,C++传统上使用类库而不是新关键字进行扩展.可以使用这样的库轻松实现状态机,因此我认为您的提议没有太多机会.

我在你的提案中看到的一个问题是使用'goto'去另一个州.如果我想在状态转换中使用我自己的代码中的goto,会发生什么?