Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Дарвин - игра-программирование, изобретенная в августе 1961 года Виктором Высоцким , Робертом Моррисом-старшим и М. Дугласом Макилроем . ( Деннис Ричи иногда ошибочно упоминается как соавтор, но не участвовал.) Игра была разработана в Bell Labs и игралась там на мэйнфрейме IBM 7090 . В игру играли всего несколько недель, прежде чем Моррис разработал «окончательную» программу, которая в конечном итоге завершила игру, поскольку никому не удалось создать ничего, что могло бы ее победить.

Описание [ править ]

Игра состояла из программы, называемой судьей, и специального раздела памяти компьютера, известного как арена , в который были загружены две или более небольших программ, написанных игроками. Программы были написаны на машинном коде 7090 и могли вызывать ряд функций, предоставленных судьей, чтобы исследовать другие места на арене, уничтожать противоборствующие программы и требовать свободную память для своих копий.

Игра завершалась через установленное время или когда оставались живыми копии только одной программы. Игрок, который написал последнюю оставшуюся программу, был объявлен победителем.

До 20 ячеек памяти в каждой программе (меньше в более поздних версиях игры) могут быть обозначены как защищенные . Если одно из этих защищенных мест было проверено другой программой, судья немедленно передал бы управление программе, которая была проверена. Затем эта программа продолжала бы выполняться, пока она, в свою очередь, не исследовала защищенное место какой-либо другой программы и так далее.

Хотя программы отвечали за копирование и перемещение самих себя, им было запрещено изменять участки памяти вне себя без разрешения судьи. Поскольку программы выполнялись непосредственно на компьютере, не существовало физического механизма для предотвращения мошенничества. Вместо этого исходный код программ предоставлялся для изучения после каждой игры, что позволяло игрокам учиться друг у друга и проверять, не обманывали ли их оппоненты.

Самая маленькая программа, которая могла воспроизводить, обнаруживать врагов и убивать их, состояла примерно из 30 инструкций. Макилрой разработал программу из 15 инструкций, которая могла обнаруживать и убивать врагов, но не воспроизводить; хотя и не очень смертоносный, он был практически неубиваемым, поскольку был короче предела в 20 защищенных инструкций. В более поздних играх из-за этого был снижен лимит защищенных инструкций.

«В конечном итоге смертельная» программа, разработанная Моррисом, содержала 44 инструкции и использовала адаптивную стратегию. Как только он успешно обнаружит начало вражеской программы, он будет исследовать небольшое расстояние перед этим местом. Если ему удастся убить врага, он запомнит расстояние и будет использовать его в последующих столкновениях. Если вместо этого он попал в защищенное место, то в следующий раз, когда он получил контроль, он выбрал другое расстояние. Все новые копии были инициализированы с успешным значением. Таким образом, программа Морриса превратилась в несколько подвидов, каждый из которых специально адаптирован для убийства определенного врага.

См. Также [ править ]

  • Трон , фильм 1982 года, основанный на аналогичной концепции
  • Core War , более современная игра с той же концепцией

Ссылки [ править ]