私は、リアルタイム組み込みシステムをテストするための簡単なインタプリタ言語を設計しています。制御フローは、スクリプトが何を実行するか、どのくらい実行するかについて強い静的保証を提供するために厳しく制限されています。たとえば、定数条件に分岐するか、固定範囲にループするだけです。HaskellでシンプルなDSLをC++ interopで構築する
関連するモデルとIOライブラリを持つC++には大きなコードベースが存在するため、この言語はC++を呼び出すことができる必要があります。テスト対象のシステムには厳しいタイミング要件があるため、テストフレームワークでは多くのジッタを許容できません。過去のソリューションはC++ランタイムに埋め込まれたカスタムDSLでしたが、必要な静的保証を実現するにはあまりにも多くのホイール(パーサー、リンター、インタラクティブなインタプリタなど)を再発明しました。
埋め込まれたDSLをこれらの保証付きで作成するためのHaskellの機能は、私には非常に魅力的ですが、ソフトリアルタイムのC++ランタイムに埋め込む方法が決まっていません。何か案は?任意のライブラリ/既存のプロジェクトへのポインタは非常に高く評価されるでしょう!
[GHC RTSを埋め込む](https://downloads.haskell.org/~ghc/7.10-latest/docs/html/users_guide/ffi-ghc.html) - 簡単に説明すると、 HaskellからのHaskellソースをロード&実行するために[ヒント](https://hackage.haskell.org/package/hint)を使用するか、C++からプリコンパイルされたHaskellコードの共有ライブラリをロードしてください。 (後者は、Facebookの[Haxl](https://github.com/facebook/Haxl)コードでやっていることです)。 –