2026年4月4日土曜日

Core War サマリ

 Core War 命令一覧

Core Warの命令は、仮想メモリ上のプログラム同士が戦うための最小限の命令セットで構成される。代表的なものにMOV(コピー)、ADD/SUB(加減算)、JMP/ JMZ(分岐)、DAT(プロセス終了)などがあり、各命令はオペコードとアドレッシングモードを組み合わせて柔軟に振る舞う。命令数が少ないため、戦略は構造と配置に強く依存する。


Core War 命令 MOV の意味
MOVは指定したアドレスの内容を別のアドレスへコピーする命令で、最も基本かつ重要な操作である。単なるデータコピーに留まらず、自己複製やコードの展開、敵コードの上書きなど多用途に使われる。インプ戦略ではこの命令のみで自己増殖的な動作を実現するなど、Core Warの戦術の中核を担う存在である。


Core War 命令 ADD の動作
ADDは指定された値を別のアドレスの値に加算する命令で、アドレス計算やポインタの移動に使われる。直接的な攻撃よりも、間接参照やループ制御などの補助的役割が強い。特に爆撃間隔の調整やスキャン範囲の拡張に利用され、戦略のリズムや周期性を設計するための重要な手段となる。


Core War 命令 JMP の使い方
JMPは無条件に指定アドレスへジャンプする命令で、ループ構造や制御フローの基本となる。特定の条件を持たないため、無限ループや巡回処理の構築に適している。攻撃プログラムでは爆撃処理を繰り返すために使われ、防御的には処理を分散させる役割も担う。単純だが戦術的に不可欠な命令である。


Core War アドレッシングモード一覧
Core Warでは即値(#)、直接($)、間接(@)、前置間接(<)など複数のアドレッシングモードが存在する。これにより同じ命令でも参照方法が変化し、挙動が大きく異なる。特に間接参照はポインタ的な役割を持ち、複雑な自己書換えやスキャン戦略を可能にする。戦略の幅はこのモード選択に強く依存する。


Core War コアサイズとは
コアサイズとは、プログラムが配置される仮想メモリの総サイズを指し、リング状(循環)構造を持つ。すべてのアドレスはこの範囲内で循環するため、端は存在せず、オーバーフローも自然に巻き戻る。コアサイズは戦略設計に大きく影響し、爆撃間隔やスキャン周期、インプの歩幅などの最適値を決定する重要な要素である。


Core War プロセス分岐とは
プロセス分岐は、複数の実行スレッドを生成する仕組みで、SPL命令によって実現される。これにより一つのプログラムが同時に複数箇所で動作し、生存確率を高める。攻撃や防御を並列化できる一方、過剰な分岐はリソース消費や管理の難しさを招くため、バランス設計が重要となる。


Core War インプ(IMP)戦略とは
インプ戦略は、MOV命令のみで自分自身を一定間隔でコピーし続ける単純な自己複製型戦術である。リング状メモリを巡回しながら拡散するため、破壊されにくい特徴を持つ。シンプルながら高い耐久性を持ち、特定の条件下では非常に強力であるが、スキャナーやトラップ系戦略には弱点も存在する。


Core War ドワーフ(Dwarf)とは
ドワーフは一定間隔でDAT命令をばらまく爆撃型戦略で、敵プログラムを強制終了させることを目的とする。ADDとMOVを組み合わせて爆撃位置を移動させながら広範囲を攻撃する。構造は比較的単純だが、コアサイズに合わせた間隔設計が重要で、適切に調整すれば多くの相手に対して安定した効果を発揮する。


Core War スキャナーとは
スキャナーはメモリ上を探索し、敵コードの存在を検知して攻撃する戦略である。比較命令や間接参照を用いて空領域と異なるパターンを見つけ出し、そこへ爆撃を集中させる。効率的に敵を排除できる一方、検知アルゴリズムの設計が難しく、速度と精度のトレードオフが戦略の核心となる。