AIは最高級言語になれるのか? -「動いている挙動が正義」から始める設計論- ②

※本記事は、筆者の考えをもとに、生成AI(ChatGPT)と対話しながら構成・文章化したものです。

私が理想とする「最高級言語」構想

――仕様駆動AI開発という、言語未満の実装から

ここからは、
私が今「最高級言語」と呼んでいる構想について書く。

ただし最初に断っておくと、
これは最初から「言語を作ろう」として考えたものではない。

今のところ、
仕様駆動AI開発手法と呼ぶ方が、意味としては正確だ。

では、どんな構想なのか。


“最高級言語”が成立する形

この構想が、
実験として一番美しく回る形は、おそらく次の構成だ。

  • 仕様書
    入出力契約と安全策だけを書く
    (DDNS への負荷制限、タイムアウト、多重起動防止など)
  • テスト
    ブラックボックスの受け入れ試験
    合否判定はここだけに集約する
  • 計測
    ログやメトリクスによって
    「期待値とのズレ」を機械的に抽出する
  • 修正
    AI がテスト失敗レポートを読み、自己修正する
  • 人間
    実機テストと最終承認のみを担当する

このループが自然に回り始めたとき、

AIは“最高級言語”として振る舞い始める

人間は「どう書くか」ではなく、
「どう振る舞ってほしいか」だけを指定すればよくなる。


なぜ GitHub / GitHub Actions が効くのか

この構想において、
GitHub と GitHub Actions は単なる便利ツールではない。

構造的に必須だ。


1. 環境を固定できる(再現性)

GitHub Actions のランナーは、

  • 同じ OS イメージ
  • 同じ初期状態
  • 同じ手順

で必ず実行される。

つまり
「俺の環境では動く」が成立しない。

  • ubuntu-latest(※実運用では pin 推奨)
  • Alma 系もコンテナや VM で再現可能

AI にとって、
再現性は思考よりも重要な前提だ。


2. 失敗時の証拠が自動で残る(観測)

Actions は失敗した瞬間に、

  • stdout / stderr
  • キャッシュファイルの中身
  • 生成物(設定、ログ、バイナリ)
  • 期待値との差分そのもの

を自動で残す。

これは
AIに渡すための「現実の証拠」
毎回揃うということを意味する。


3. テストが仕様になる(契約の固定)

Actions で回るテストは、
そのまま 合格条件=仕様 になる。

例えば:

  • 人間が実装したものと、AIが実装したものの振る舞いを比較するテスト
  • 回数制限・タイムアウト・多重起動防止といった性質テスト
  • 「DDNS サーバーに負荷をかけない」ことを回数で縛る

ここまで定義できると、

実装が Rust でも C でも
あるいはアセンブリでも関係なくなる

残るのは、挙動だけだ。


4. バグ修正ループを機械的に回せる(自動化)

  • PR が出る
  • テストが走る
  • 落ちたら、落ちた証拠が残る

「直したつもり」が激減する。

さらに一歩進めると、

  • AI が修正案をコミットする
    (人間はレビューと実機テストのみ)
  • Actions が判定する
  • 落ちたらログを材料に AI が再修正する

これはもはや
“自己修正コンパイラ” の土台だ。


5. 証拠が“会話”ではなく“履歴”に残る

ここが、この構想で最も重要な点だ。

  • issue
  • PR
  • commit
  • workflow logs
  • artifacts

これらすべてが、
仕様の進化ログ として残る。

1年放置しても、
「なぜそうなったのか」に戻ってこれる。

これは 私の自作DDNSクライアント が大事にしてきた
「状態をファイルに置く」という思想の、
開発プロセス版でもある。


GitHub Actions は AI のための「現実判定装置」

AI + GitHub + Actions は、

「仕様(テスト)→ 実装 → 実行 → 証拠 → 修正」

というループを、
人間の記憶や理解力から切り離して
機械的に回すことができる。

だから GitHub Actions は、
AI にとっての 現実判定装置 になる。


仕様駆動AI開発と「最高級言語」の違い

最後に、この二つの違いをはっきりさせておく。

  • 仕様駆動AI開発
    AI と GitHub を「どう使えばいいか」を説明するもの
  • 最高級言語
    AI と GitHub を使っていることを
    使う側に意識させないもの

違いはそれだけだ。

だがこの差は、

方法論言語 を分ける、決定的な一線

だと私は考えている。


私の再定義と Li+

  • プログラミング言語は
    プログラムを書く言語
  • プログラム言語は
    プログラムを作る言語

私はそう勝手に再定義し、

この最高級プログラム言語を
Li+(リプラス)言語 と呼ぶことにした。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です