COREWAR

/
◆SPECIMEN 02 // STONE ARCHETYPETaxon: Petraeksito modularis (A.K. Dewdney, 1984)

Specimen 02: Dwarf(ドワーフ)— 4つの器官が完璧に調和した定住型爆撃機(Stone)の始祖

Petraeksito modularis // 間接参照ポインタとMod-4算術が生み出す「動かない捕食者」の数理的美学

4マスの小さな細胞膜に定住したまま、間接参照ポインタ(@)を触手のように伸ばし、8,000マスのメモリ空間へ4マスおき(Mod-4)に致死性のDAT毒胞子(◆)を撃ち込み続ける「Stone(岩石型)」アーキタイプの始祖。

SECTION 01 // TAXONOMY & BIOLOGICAL PROFILE

1. 分類・学名・基本スペック(Taxonomy & Profile)

学名(デジタル生物分類)
Petraeksito modularis
発見者・記載年
A.K. Dewdney (1984)
戦術アーキタイプ
Stone / Modulo Bomber(定住型・周期律爆撃機)
ゲノムサイズ(体長)
4 セル(4 行)
生息域(Habitat)
初期ロード番地に完全固着(移動せず、周囲へ毒胞子のフィールドを展開)
運動様式(Locomotion)
完全固着性(Sessile:本体は1マスも移動せず、ポインタのみが空間を巡回)
エネルギー代謝(Metabolism)
Mod-4 周期加算代謝(3サイクルに1回、ポインタB値を +4 更新)
生殖・分裂様式(Reproduction)
非分裂・単一核駆動(SPLを持たず、100%のCPUサイクルを爆撃速度に集中)
🧬 主要オルガネラ(構成生体器官グリフ)
+
ADD.AB
代謝心臓(Mod-4照準ポインタ加算器)
▼
MOV.I
胞子射出筋(B間接参照による遠隔投下器)
↺
JMP.A
反復神経回路(3サイクル周期の基底ループ)
■
DAT.F
照準データ嚢 兼 毒胞子母体(◆ BOMB)

Imp と並び、1984年に A.K. デュードニーによって最初に記載された歴史的標本が「Dwarf(ドワーフ)」である。CoreWar の3大基本戦術「Stone(岩石・爆撃型)」「Paper(紙・増殖型)」「Scissors(鋏・索敵型)」のうち、すべての Stone 系ボマーの直接の祖先にあたる存在であり、学名 Petraeksito modularis(モジュロ周期で破壊をもたらす岩石生物)として分類される。

Imp が「自らの身体を移動させること」に特化した生命体であるのに対し、Dwarf は「自らは初期位置から1ミリも動かず、遠隔地のメモリを破壊すること」に特化している。その姿は、海底の岩場に固着しながら長い触手を伸ばして周囲に毒針(刺胞)を放つイソギンチャクやサンゴ礁のポリプに酷似している。わずか4行という極小のコードの中に、「算術加算(+)」「間接転送(▼)」「ループ制御(↺)」「ポインタ兼データ爆弾(■/◆)」という4種類の異なる生体器官が1つずつ配置され、時計仕掛けのような完璧な調和で機能する。

SECTION 02 // ECOLOGY, AUTOPOIESIS & BEHAVIOR

2. 生態と行動様式(Ecology & Behavior)

ビバリウム内で Dwarf の観察を開始すると、本体のある4マス(0000〜0003番地)の中で、プログラムカウンタ(核)が「0000 → 0001 → 0002 → 0000...」と3サイクル周期で高速に往復(呼吸)しているのが見える。そして2行目(0001番地の MOV.I 2, @2)が実行されるたび、本体から伸びた赤い標的ビームが 0007番地、0011番地、0015番地、0019番地……と4マスおきの座標を指し示し、そこへ菱形の結晶(◆ DAT 毒胞子)を次々と着弾させていく。

なぜ Dwarf は「DAT 命令」を投げることで敵を殺傷できるのか?MARS 仮想空間において、DAT(Data)は「ここは数値データ置き場であり、実行可能な命令ではない」ことを示す特殊なセルである。もし敵のプログラムが稼働している最中に、そのコードの1行でも Dwarf の放った DAT 胞子によって上書きされると、敵の実行ポインタ(PC)がそのセルを踏んだ瞬間に「不正命令実行(データ領域への突入)」を起こしてプロセスが即死する。つまり Dwarf は、メモリという大地に「踏めば即死する地雷」を4マス間隔で規則正しく敷設し続ける工兵なのである。

さらに注目すべきは、Dwarf が自身の4行目(0003番地)にある DAT セルを「照準ポインタ(変数箱 ■)」として使いながら、同時に「投下する爆弾のコピー元(◆)」としても流用している点である。投下される爆弾の中身は「DAT.F #0, #4」「DAT.F #0, #8」と少しずつB値が増えていくが、オペコードが DAT である限り致死性はまったく変わらない。1つの器官に2つの役割を兼ねさせることで、身体サイズを最小の4セルに抑えているのである。

⚡ 生命維持サイクル(1周期のミクロ行動プロセス)
Cycle 1: 照準代謝(ADD.AB #4, 3)
心臓器官(+)が拍動し、0003番地のDAT箱のBフィールドに 4 を加算して次の爆撃座標を算出する。
Cycle 2: 胞子射出(MOV.I 2, @2)
射出筋(▼)が0003番地のB値を間接参照ポインタ(@)として読み取り、その距離にある遠隔セルへ0003番地のDATをコピー投下する。
Cycle 3: 神経還流(JMP.A -2)
神経回路(↺)がPCを0003番地のDAT手前で引き返し、0000番地のADDへ戻すことで自爆を防ぎ次のサイクルへ入る。
SECTION 03 // CELLULAR ANATOMY & ORGANELLE DISSECTION

3. 生体解剖図:コードと器官の対応(Cellular Anatomy & Organelles)

Dwarf の4行のコードは、Redcode プログラミングにおける「機能分化(オルガネラ化)」の最も美しい教科書である。1行ごとに異なるグリフ(+, ▼, ↺, ■)が並び、どれか1行でも欠ければ生命として成立しない。

+
CELL #0000
ADD.AB #4, 3
代謝心臓(Mod-4 算術ペースメーカー)
3行先(0003番地)にある体内データ箱(DAT)のBフィールドに、即値「#4」を加算する。これにより、0003番地のB値は1ループごとに 4 → 8 → 12 → 16... と4の倍数でカウントアップし、次に毒胞子を撃ち込むべき遠隔座標を刻み続ける。
▼
CELL #0001
MOV.I 2, @2
間接参照・胞子射出器(B-Indirect Spore Cannon)
2行先(0003番地)にある「DAT.F #0, #X」そのものを弾頭としてコピーし、同じ0003番地のBフィールドが指し示す間接参照先(@2=0003番地から+X離れたセル)へと遠隔射出する。Dwarf自身は一歩も動かず、触手のようにポインタだけを伸ばして外界を爆撃する核心器官。
↺
CELL #0002
JMP.A -2
自律神経ループ(3サイクル恒常性回路)
プログラムカウンタ(PC)を2行前(0000番地のADD命令)へ強制的に引き戻す。もしこの神経ループが欠損すれば、PCは直後の0003番地(DAT)へそのまま踏み込んで自死してしまうため、生命維持と攻撃反復を同時に司る。
■
CELL #0003
DAT.F #0, #0
照準データ箱(■)兼 致死性毒胞子母体(◆)
Dwarfの体内に収められた多機能オルガネラ。体内にある間はBフィールドに爆撃先の相対距離を蓄える「変数ポインタ箱(■)」として機能し、1行目のMOVによって外界へ射出された瞬間、踏んだ敵プロセスを即死させる「結晶化DAT爆弾(◆)」へと姿を変える。
🔬 解剖学的総括(System Integration)上部の3行(0000〜0002番地)がプログラムカウンタが巡回する「生きた細胞質(エンジン)」であり、最下部の1行(0003番地)はPCが決して足を踏み入れない「非実行データ領域(変数メモリ兼弾薬庫)」である。この3対1の非対称構造が、あらゆる爆撃機の基本設計図となっている。
SECTION 04 // COMPUTER SCIENCE & VON NEUMANN ARCHITECTURE INSIGHT

4. ノイマン型アーキテクチャにおける意義(Computer Science Insight)

💻 間接アドレッシング(Indirect Addressing: @)による動的ポインタ参照💻 モジュロ算術(Modulo Arithmetic: mod 8000)と巡回群の周期性💻 コード領域とデータ領域の境界線(Instruction vs. Data Boundary)

計算機科学において Dwarf が体現している最大の発明は、「間接参照ポインタ(Indirect Pointer:`@` モード)」の威力である。もし Redcode に直接参照(` Specimen 02: Dwarf(ドワーフ)— 4つの器官が完璧に調和した定住型爆撃機(Stone)の始祖 | vivariums.net )しかなければ、プログラムはあらかじめソースコードに書かれた固定距離のセルにしかデータを書き込むことができない(あるいは命令自身のオペランドを直接書き換える自己書き換えを行う必要がある)。しかし `MOV.I 2, @2` の `@2`(B間接参照)を使うことで、「2行先のセルを見に行き、そこに書かれている数値を『さらなる相対アドレス』として解釈してジャンプ先のセルへ書き込む」というC言語のポインタ逆参照(`*ptr = bomb`)とまったく同じ動的メモリアクセスがわずか1命令で実現される。

そしてもう一つの深い数理的洞察が、「なぜステップ幅が『4(#4)』なのか?」という問題である。MARSの標準コアサイズは 8,000 セル(または初期規格の 4,096 セル)であり、どちらも「4」で綺麗に割り切れる(8000 ÷ 4 = 2000)。Dwarf は自身の4行目(0003番地)を起点(オフセット0)として、+4, +8, +12... と4の倍数の位置に爆弾を落とし続ける。

すると、ちょうど 2,000 発の爆弾を投下してコアを1周(8,000番地分)したとき、2,000発目の爆弾はどこに着弾するか? `0003 + 8000 ≡ 0003 (mod 8000)` —— すなわち、Dwarf 自身の4行目(0003番地の DAT セル自身)の上にだけ着弾し、0000〜0002番地の生きた実行コード(ADD, MOV, JMP)は未来永劫、自分の爆弾によって傷つくことがない!しかも、長さが4行以上ある敵プログラムは、コアのどこに潜んでいようとも4マスおきの網の目に100%引っかかって破壊される。この「モジュロ演算による自己免疫(Self-Immunity)と完全被覆の両立」こそ、Dwarf が持つ数理的美学の極致である。

SECTION 05 // PREDATORS, WEAKNESSES & METAGAME FOOD CHAIN

5. 天敵・弱点・食物連鎖(Predators & Metagame)

🟢 有利(捕食対象 / PREY)Scanner / Scissors(索敵捕食者) →

高度な感覚器(CMP/SNE)を持つため身体が大きく(6〜10行以上)なりがちなScannerに対し、わずか4マスのDwarfは被弾面積が極小であり、Scannerが発見する前に4マスおきの高速爆撃で感覚器やループを撃ち抜く。

🔴 不利(天敵 / PREDATOR)Mice / Paper(自己複製スウォーム) →

3サイクルに1発ずつ律儀に点爆撃を行うDwarfに対し、SPL命令で指数関数的にクローンを増殖させるPaperは圧倒的な物量で空間を埋め尽くす。1個体を爆破しても残りの数十個体が生き残り、やがてDwarf自身が上書きされる。

三すくみ(Stone / Paper / Scissors)の生態系において、Dwarf(Stone)は「Scissors(スキャナー/索敵捕食者)」に対して強い優位性を持つ。スキャナーは敵を探すための比較命令(CMP/SNE)や分岐ロジックを備えるためコードサイズが肥大化しやすく、4マスおきの爆撃網に容易に捕捉される。一方、Dwarf 自身はわずか4マスしかなく、スキャナーが広大な8,000セルの中から Dwarf を見つけ出す前に、Dwarf の盲目的な高速砲火がスキャナーの身体を撃ち抜くことが多い。

しかし逆に、Dwarf は「Imp(1行移動体)」や「Paper(自己複製スウォーム)」に対して構造的な弱点を抱えている。第1に、4マスおきの爆撃には「3マスの安全地帯(隙間)」が空いているため、体長3行以下の極小プログラムや、1マスずつ移動する Imp が隙間をすり抜けて接近してくるのを止められない。

第2に、Dwarf は移動能力を持たない完全固着生物であるため、一度でも自分の座標(0000〜0002番地)に爆弾が直撃するか、Paper の大群に周囲を包囲されて上書きされると、逃げ場がなく即座に絶滅する。競技レベルの進化型 Stone(たとえばプリデクリメント `<` を併用した2行・3行ボマーや、8000と互いに素に近い最適Mod-4ステップ定数 `2365` や `3359` を採用したボマー)は、すべてこの原種 Dwarf の遺伝子を受け継いだ直系の子孫たちである。

SECTION 06 // INTERACTIVE VIVARIUM EXPERIMENT

6. 🔬 Lab / Academy でこの生命体を観察する

0003番地のDAT箱のB値が 4, 8, 12... とカウントアップし、間接参照ビーム(@)が4マスおきに毒胞子(◆)を着弾させる様子を Workbench と Arena で実際に確認しましょう。

🎓 Academy Step 5「伝説の爆撃機 Dwarf の誕生」をプレイする