ICWS’94 は、Core War のアセンブリ言語 Redcode と、その実行環境 MARS のために作られた「1994年版の標準案(draft)」です。正式採択された“最終規格”というより、事実上もっとも広く使われた共通仕様として扱われています。仕様本文(注釈付きドラフト)が公開されています。
ICWS’94 が何を決めるものか
-
Redcode の文法(命令、アドレッシング、修飾子など)
-
命令の意味(各命令がメモリやプロセスにどう作用するか)
-
MARS の基本ルール(プロセス、実行、致死条件などの前提)
「同じ戦士(warrior)が、違うシミュレータでも同じ挙動になる」ための共通土台です。
ICWS’88 からの大きな変更点(ICWS’94の“肝”)
1) アドレッシングモードが増えた(4 → 8)
ICWS’94 では Aフィールド間接系を中心に増え、合計 8 モードになります(# $ * @ { < } >)。
2) 命令修飾子(modifier)が導入された
.A .B .AB .BA .F .X .I のような修飾子で、「Aフィールドだけ」「Bだけ」「両方」「命令全体」など、演算対象を選べるようになりました。これが戦略表現力を一気に上げます。
3) “違法命令”の扱いが緩くなった(no illegal instructions の方向)
ICWS’94 ドラフトでは、命令とモードの組合せを広く許す設計(違法組合せを減らす)へ寄っています。これも互換性と表現力のための変更点としてFAQ等で説明されています。
4) 後方互換(ICWS’88 戦士が動く)
ICWS’94 は「ICWS’88 の戦士が正しく動く」互換性がある、とFAQで明記されています。
「pMARS が物差し」と言われる理由
pMARS は自分の説明で **「ICWS’94 を実装しつつ ICWS’88 互換」**を掲げています。なので「互換確認の基準」として参照されやすい、という位置づけになります。
まず読むべき一次ソース
-
Annotated Draft of the Proposed 1994 Core War Standard(注釈付きドラフト本文)
-
補助として、ICWS’94 を前提にした入門ガイド(アドレッシング一覧などが整理されていて速い)