Haskell の力を組み込みリアルタイムの世界に適用できるかどうかを知りたくて、Google でAtomパッケージを見つけました。複雑なケースでは、コードに古典的な C バグ (クラッシュ、メモリ破損など) がすべて含まれている可能性があり、それらを引き起こした元の Haskell コードまでたどる必要があると思います。では、これが質問の最初の部分です。「Atom の経験があれば、コンパイルされた C コードの低レベルのバグをデバッグし、Haskell の元のコードでそれらを修正するタスクにどのように対処しましたか?」
私は Atom の例をいくつか探しました。このブログ投稿では、結果の C コード 22KLOC について言及されています (そして明らかにコードはありません:) 。含まれている例はおもちゃです。thisおよびthisリファレンスにはもう少し実用的なコードがありますが、これで終わりです。この件名に「かなり」を入れた理由は、生成された C コードを 300KLOC+ の範囲で使用した経験を共有していただければ幸いです。
私は Haskell の初心者なので、未知の未知のために見つけられなかった他の方法があることは明らかです。そのため、この分野の独学のための他の指針は大歓迎です - そしてこれは質問の 2 番目の部分です - 「Haskellでリアルタイム開発を行うための他の実用的な方法は何ですか?」. マルチコアも写真に含まれている場合、それは余分なプラスです:-)
(この目的での Haskell 自体の使用について:このブログ投稿で読んだことから、Haskell のガベージ コレクションと遅延により、スケジューリングに関してはかなり非決定論的になりますが、おそらく 2 年で何かが変わった可能性があります。SO に関する現実世界の Haskell プログラミングの質問このトピックに最も近いものでした)
注:上記の「リアルタイム」は「ハード リアルタイム」に近いものです。メイン タスクが実行されていないときの一時停止時間を 0.5 ミリ秒未満にすることができるかどうか、興味があります。