Generic State Machine Library for C++

C++ 向けの状態機械ライブラリを開発するプロジェクトを立てました。
http://statemachinecxx.sourceforge.jp/


『Generic State Machine Library for C++』なんて書くと、なんだか超汎用的で偉そうな感じですが、中身は全然そんなことはなくて、ヘッダーファイル一つになる予定です。ヘッダーを include して、ユーザークラスを二つ三つ定義すればそれで OK、というお手軽なライブラリにしようと思っています。C++ の特徴を生かしてシンプル & コンパクトに、かつ機能的なものを目指します。


きっかけはもちろん AquaSKK の新エンジン開発ですが、Practical Statecharts in C/C++ でなるほどなーと思ったことを自分なりに咀嚼して、ちょっと違った角度からまとめ直してみたら意外と汎用的なものができそうだ、という手応えを感じたので作ってみました。将来的には、このライブラリが AquaSKK の駆動装置になります。


巨大なフレームワークとかライブラリとかもうそんなのはお腹一杯、手っ取り早くオートマトンを使いたい、という人にはいいかなぁと思います。ただ、シビアにパフォーマンスを追求したり、無限の拡張性を要求したりというような用途には向いていません。このライブラリでは、そこそこの性能や拡張性が確保できればそれ以上は欲張らず、コードのわかりやすさを重視していきます。