自作言語ポータルへ戻る
Neknaj Project / 自作言語 / Circuit Game

Logic Circuit DSL

Circuit Game

Circuit Game は、論理回路をテキストで記述・実行するための DSL と処理系です。GUI で部品を並べるのではなく、 プログラミング言語に近い書き味で回路を記述し、モジュール化し、NOR ゲートだけの形式へ変換し、 テストやデバッグまで一続きで扱うことを目指しています。

この repo の核

  • 論理回路の入出力関係だけをテキストで記述し、物理レイアウトの指定を排除する。
  • モジュール化によって、同じ回路の再利用や差し替えを簡潔に行えるようにする。
  • 全回路を NOR のみへ帰着させ、論理完全性の確認とシミュレーション VM の単純化を両立する。
  • テスト記述、Web デバッガ、既存テキストエディタとの連携まで含めて扱う。
  • Game という名前は、テキスト形式へ移る前にセルオートマトンとして試作していた時期に参照していた Conway's Game of Life に由来します。

なぜテキスト形式で回路を書くのか

  • GUI でゲートを並べる方式は見た目には分かりやすい一方で、大きい回路になると編集、再利用、差分管理が急激に重くなります。
  • Circuit Game は、論理回路を「配置の問題」ではなく「構造の記述」として扱い、プログラミング言語に近い編集体験へ寄せます。
  • モジュール化によって、回路の部品化、差し替え、再利用、上位回路からの合成を簡潔に行えることを重視しています。
  • 最終的に NOR のみへ正規化することで、論理完全性を保ちながらシミュレータや検証器の核を単純化できます。
  • テキストで書けることにより、テスト、デバッガ、エディタ支援、バージョン管理、将来的な自動変換との接続が容易になります。

今後の再設計で狙うこと

  • 物理的なレイアウトや GUI 操作に縛られず、回路構造そのものを読み書きできる DSL に寄せる。
  • NEPLg2 の構文、型、モジュール、将来的なマクロや静的検証を土台にして、記述の一貫性を強める。
  • シミュレーション、テスト、回路変換、実装ターゲットへの出力を同じ言語系の中に収める。
  • 将来的には回路設計専用 DSL に閉じず、より一般的なハードウェア記述や周辺ツール群へ接続できる形を目指す。