最小の自律プログラム「自動カウンター」と状態機械のホメオスタシス
「演算(ADD)」「制御(JMP)」「記憶(DAT)」の三位一体が創り出す、生きたアルゴリズムの原型
第2章の総仕上げとして、1人で動く 「自動カウンター」 を完成させましょう! 1. 0000 番地:ADD.AB #1, $2(2つ下の 0002 番地に 1 を足す) 2. 0001 番地:JMP.A $-1, #0(1つ上の 0000 番地へ戻る) 3. 0002 番地:DAT.F #0, #0(数字を貯めるデータ箱)
現在は 0000 番地の足す数が #0 になっているため、ループしても数字が増えません。
🎯 やってみよう 0000 番地の A(左の数値) を #0 から #1(またはそれ以上)に変えて [PLAY] を押し、0002 番地のB値が 1, 2, 3, 4, 5... と自動的にカウントアップして 5 以上 になるのを確認しましょう!
1. プログラムを構成する「三位一体(演算・制御・記憶)」
第2章の総仕上げであるStep 13では、たった3行で自律的に数字をカウントアップし続ける「自動カウンター」を完成させました。 ・0000 番地:『ADD.AB #1, $2』 ➔ 演算(Computation:状態を進化させる力) ・0001 番地:『JMP.A $-1, #0』 ➔ 制御(Control:時間を循環させ命を繋ぐ力) ・0002 番地:『DAT.F #0, #0』 ➔ 記憶(Storage:変化する状態を保持する器)
このわずか3行のプログラムをじっくりと眺めてください。実はこれこそが、人類がこれまでに作ったあらゆるソフトウェア——Webブラウザも、銀行のシステムも、大規模言語モデル(AI)も——の最も純粋な「最小原型(アーキタイプ)」なのです!
もし1行目の『ADD(演算)』がなければ、プログラムはただ同じ場所を空回りするだけで、世界には何の変化も生まれません。 もし2行目の『JMP(制御)』がなければ、プログラムは1回足し算をしただけで3行目のDATに突っ込んで死んでしまいます。 もし3行目の『DAT(記憶)』がなければ、足し算した結果を蓄積しておく場所がありません。 「演算・制御・記憶」の3つが1つのシステムとして噛み合った瞬間、静止していたメモリの箱に「時間とともに成長し続ける動的なプロセス」が誕生したのです。
┌─────────────────── THE COMPUTATIONAL TRINITY ───────────────────┐
│ [0000] ADD.AB #1, $2 ──► 1. COMPUTATION (ALU updates state) ─┼─┐
│ [0001] JMP.A $-1, #0 ──► 2. CONTROL (Loop sustains life) │ │
│ [0002] DAT.F #0, #5 ◄── 3. STORAGE (Memory holds 1,2,3..)◄┘ │
└─────────────────────────────────────────────────────────────────┘2. 2サイクル周期の代謝リズムとホメオスタシス
[PLAY] ボタンを押してカウンターが 1, 2, 3, 4, 5... と増えていく様子を観察したとき、0002 番地の数字は「2サイクルに1回」のペースで増えていたことに気づいたでしょうか? ・奇数サイクル(Cycle 1, 3, 5, 7, 9):0000 番地の『ADD』が実行され、カウンターが +1 増える。 ・偶数サイクル(Cycle 2, 4, 6, 8, 10):0001 番地の『JMP』が実行され、実行ポインタが 0000 番地へ戻る。
生物学において、生命体が外部環境の中で自身の内部サイクルを安定して保ち続ける性質を「ホメオスタシス(恒常性)」と呼びます。この自動カウンターは、2サイクルで1呼吸する代謝リズムを持ち、1呼吸ごとに0002番地という体内のエネルギー貯蔵庫に『+1』ずつ数値を蓄積しています。
そして何より興味深いのは、第1章では「踏んだら即死する危険な罠」に見えていた 0002 番地の『DAT』が、2行目の『JMP』によって適切な距離に保たれた結果、「決して踏まれることなく安全にデータを蓄える頼もしい臓器(メモリ変数)」として機能している点です。
3. カウンターから「ポインタ走査(爆撃機・索敵機)」への進化
「ただ 0002 番地の数字が 1, 2, 3, 4, 5... と増えるだけで、これがどうやって戦うプログラムになるのだろう?」と思うかもしれません。
では、想像してみてください。今 0002 番地で 1, 2, 3, 4, 5... と自動的に増え続けているその数字を、単なる「得点カウンター」としてではなく、「次に爆弾を投げ込む宛先番地のメモ(ポインタ)」として使ったらどうなるでしょうか? 1周目には 1 マス先へ、2周目には 2 マス先へ、3周目には 3 マス先へと、自動的に狙いをずらしながらメモリ空間の隅々まで攻撃や調査を行う「自律移動砲台」になりますね!
そう、あなたがこのStep 13で作った「自動カウンター」こそが、第3章・第4章で登場するすべての高等Warrior(DwarfやScanner)の心臓部(エンジン)そのものなのです。
🔒 MISSION CLEAR で講義ノートの全編が解放されます
上段の実験シミュレーターでミッションを達成すると自動的に全編がアンロックされます。(下のボタンから今すぐ全文を先に読むことも可能です)