Кіріспе

1961 жылғы бағдарламалау ойыны

Дарвин – 1961 жылдың тамызында Виктор А. Виссоцкий, Роберт Моррис аға және М. Дуглас Макилрой жасаған бағдарламалау ойыны. (Деннис Ричи кейде теріс түрде ойдың авторларының бірі ретінде көрсетіледі, бірақ ол қатыспаған.) Ойын Bell Labs зертханасында жасалған және ондағы IBM 7090 эВМ-де ойналған. Ойын бірнеше апта ғана ойналғаннан кейін Моррис «соңғы» бағдарламаны жасады, ол ойынды тоқтатты, себебі одан күштірек нәрсе табуға ешкім қол жеткізе алмады.

Сипаттама

Ойын "төреші" деп аталатын бағдарламадан және компьютер жадының "арена" деп аталатын арнайы бөлімінен тұрады. Ойыншылар жазған екі немесе одан көп кішкентай бағдарламалар осы аренаға жүктелген. Бағдарламалар 7090 машиналық кодымен жазылған және аренадағы басқа орындарына сұрау салу, қарсы бағдарламаларды жою және өздерінің көшірмелері үшін бос жадыны пайдалану үшін төреші ұсынған бірқатар функцияларды шақыра алатын. Ойын белгілі бір уақыт өткен соң немесе тек бір бағдарламаның көшірмелері ғана тірі қалғанда аяқталады. Соңғы тірі қалған бағдарламаны жазған ойыншы жеңімпаз деп жарияланады. Әр бағдарламаның ішінде 20 жад орны (ойынның кейінгі нұсқаларында одан аз) қорғалған деп белгіленуі мүмкін. Егер басқа бағдарлама осы қорғалған орындардың бірін сұрап көрсе, төреші дереу басқаруды сұраған бағдарламаға береді. Бұл бағдарлама өз кезегінде, басқа бағдарламаның қорғалған орнына сұрағанша орындалуын жалғастырады, және т.б. Бағдарламалар өздерін көшіру және орнын ауыстыру үшін жауапты болғанмен, төрешінің рұқсатысыз өздерінен тыс жад орындарын өзгертуге тыйым салынды. Бағдарламалар компьютермен тікелей орындалғандықтан, алдауды болдырмау үшін ешқандай физикалық механизм болған жоқ. Оның орнына, бағдарламалардың бастапқы коды әр ойыннан кейін зерттеу үшін қолжетімді болды, бұл ойыншыларға бір-бірінен үйренуге және қарсыластары алдамағанын тексеруге мүмкіндік берді. Жауларды табуға және өлтіруге қабілетті ең кішкентай бағдарлама шамамен 30 нұсқаудан тұрады. Макилрой 15 нұсқаудан тұратын бағдарламаны жасады, ол жауларды табады және өлтіреді, бірақ көбеймейді; өте қауіпті болмаса да, ол 20 қорғалған нұсқаудан қысқа болғандықтан, оны өлтіруге болмайтын еді. Осы себепті кейінгі ойындарда қорғалған нұсқаулардың саны шектелді. Моррис жасаған "толыққанды өлімге әкелетін" бағдарламада 44 нұсқау бар және бейімделу стратегиясы қолданылған. Ол жау бағдарламасының басталуын сәтті анықтағаннан кейін, осы орыннан сәл алға қарай сұрау салады. Егер ол жауды өлтіре алса, қашықтықты есте сақтап, келесі кездескенде пайдаланады. Егер ол қорғалған орынға тисе, ол басқа қашықтықты таңдайды, ал басқаруды қайта алғанда, кез келген жаңа көшірме сәтті мәнмен басталады. Осылайша Моррис бағдарламасы бірнеше түрге айналды, олардың әрқайсысы нақты жауды өлтіруге арнайы бейімделген.