自作言語ポータルへ戻る
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 に閉じず、より一般的なハードウェア記述や周辺ツール群へ接続できる形を目指す。