コア戦争
『コア戦争』(コアせんそう、英:Core War または Core Wars)はプログラミングゲームのひとつである。専用に設計された仮想機械中で、互いに干渉しうるプログラム同士が戦うというもので、敵対するプログラムを終了させ、自分は生き残ってマシンを占領するのがゲームの目的である。仮想機械は『MARS』(火星にも掛けているが、Memory Array Redcode Simulatorの頭字語)という名前で、戦闘プログラムは『戦士』"warriors" と呼ばれる。
ロボットバトルシミュレーションといった趣きのプログラミングゲームは他にもあるが、コンピュータの記憶装置そのものを戦場とし、プログラムが存在するメモリを上書きするなどして直接プログラム同士が戦う、という点がこの作品の特色である。なお「コア」は磁気コアメモリに由来する。
1984年、サイエンティフィック・アメリカン誌の『コア戦争』に関する記事がベル研究所の en:Victor A. Vyssotsky、en:Robert Morris Sr.、en:M. Douglas McIlroy らによって 1960 年代に書かれた Darwin をそれにもかかわらず引用していた。
最初の Redcode 言語の記述は 1984 年の 3 月に en:D. G. Jones と en:A. K. Dewdney による『コア戦争ガイドライン』(Core War Guidelines)において発表された。このゲームはDewdneyによって書かれたサイエンティフィックアメリカン誌に 1984 年の 3 月に一般に紹介された。1985 年の 5 月、Dewdney は自身の "Computer Recreations" コラムにおいてコア戦争を再考し、また 1987 年 1 月にも取り上げた。
国際コア戦争協会 (International Core Wars Society, ICWS) は Dewdney の記事の一年後、1985年に設立された。ICWSは1986年と1988年に Redcode 言語の新たな規格を出版し、新たな規格として非公式のセットを1994年に提案と更新を行った。にもかかわらず、1994年のドラフトは一般に採用、拡張され、今日のRedcodeのデファクトスタンダードへの基板を形成している。ICWS は Mark Clarkson (1985–1987)、William R. Buckley (1987–1992)、Jon Newman (1992–)によって指揮されたが、現在は ICWS はもはや機能していない。
replicatorの初期の例はen:Chip WendellによるMiceがある。 silkは非常に高速なreplicatorの特殊なもので、名前はen:Juha PohjalainenのSilk Warriorにちなんでいる。最も現代的なreplicatorはこのタイプである。Silk はコード全体のコピーを一命令で並列実行し、それが完了する前にコピーの実行を開始する。
scanner(『監視者』もしくは『はさみ』(scissor、ジャンケンの『チョキ』の意)) は主にメモリをSPL 0命令で爆撃することでreplicatorに勝つために設計された。これは敵に何もしないがさらなるプロセスを作成するような多数のプロセスを作成させる。これは有用なプロセスの減速を引き起こす。敵がまともなことをできなくなるまで十分に遅くなったとき、メモリはDAT命令で爆撃される。scannerは闇雲に攻撃するのではなく、狙った攻撃を開始する前にその敵の発見を試みる。このことにより、replicatorのような倒すのが厄介な敵に対してより効果的になるが、おとりに対する脆弱さを放置することにもなる。Scanner はまた、一般的に他のタイプの戦士より複雑であり、それゆえ巨大で壊れやすい。 en:P. KlineによるHe Scans Alone は強い Scanner の一例である。