YouTrack CLIツールを作ったよ。https://github.com/keithn/yt それと、組み込みのベアメタルデバイス用の言語も作ってるんだ。これには協調マルチタスクが組み込まれてる。多くの組み込みプロジェクトはRTOSを導入して、その複雑さを引き継いじゃうんだよね。ここでのアイデアは、メンタルモデルをシンプルに保つこと。すべての[]ブロックは独立して実行されて、各論理行の後に自動的にyieldするんだ。イベント/メッセージングシステムもあるよ。 - ブロックはイベントでトリガーできる: [>event params ...] - ブロックは内部でイベントを待つことができる - イベントは割り込みからも注入できる これで、デバイスの状態を監視しながら、組み込みシステムを独立した状態機械としてモデル化するのが簡単になる。今はRustで書かれたインタープリターが主だけど、Cコードも出力できる。まだ構文を試行錯誤中だよ。例: module WaterTank { type Direction = UP|DOWN let direction = UP let current = 0 [>open_valve direction |> direction] [>update level |> current] [ for 0..30 |> iteration { when direction { UP -> !update level=current + 1 |> min(100) DOWN -> !update level=current - 1 |> max(0) } ~ %'{iteration} {current}' } ] [>update level |> when { 0..10 -> %'shallow' 11..15 -> %'good' 16.. -> %'too much!' then !open_valve direction=DOWN } ] }