Дарвин (игра по программированию)
Дарвин — игра для программирования, изобретенная в августе 1961 года Виктором Высоцким , Робертом Моррисом-старшим и М. Дугласом Макилроем . ( Денниса Ричи иногда ошибочно называют соавтором, но он не принимал участия.) Игра была разработана в Bell Labs и в нее играли там на мэйнфрейме IBM 7090 . В игру играли всего несколько недель, прежде чем Моррис разработал «окончательную» программу, которая в конечном итоге положила конец игре, поскольку никому не удалось создать что-либо, что могло бы победить ее.
Описание
[ редактировать ]Игра состояла из программы, называемой судьей , и специального раздела памяти компьютера, известного как арена , в который загружались две или более небольших программ, написанных игроками. Программы были написаны на машинном коде 7090 и могли вызывать ряд функций, предоставляемых судьей, чтобы исследовать другие места на арене, уничтожать противостоящие программы и требовать свободную память для своих копий.
Игра завершалась через заданное время или когда оставались живы копии только одной программы. Победителем был объявлен игрок, написавший последнюю сохранившуюся программу.
До 20 ячеек памяти в каждой программе (меньше в более поздних версиях игры) могут быть обозначены как защищенные . Если одно из этих защищенных мест было исследовано другой программой, судья немедленно передал бы управление проверенной программе. Затем эта программа будет продолжать выполняться до тех пор, пока она, в свою очередь, не проверит защищенное расположение какой-либо другой программы и так далее.
Хотя программы отвечали за копирование и перемещение себя, им было запрещено изменять ячейки памяти за пределами себя без разрешения судьи. Поскольку программы выполнялись непосредственно компьютером, не было никакого физического механизма, предотвращающего мошенничество. Вместо этого исходный код программ был доступен для изучения после каждой игры, что позволяло игрокам учиться друг у друга и проверять, не обманули ли их противники.
Самая маленькая программа, которая могла воспроизводить, обнаруживать врагов и убивать их, состояла примерно из 30 инструкций. Макилрой разработал программу из 15 команд, которая могла находить и убивать врагов, но не размножаться; хотя он и не был очень смертельным, его фактически невозможно было убить, поскольку он был короче лимита в 20 защищенных инструкций. Из-за этого в более поздних играх лимит защищенных инструкций был снижен.
«Смертельно смертоносная» программа, разработанная Моррисом, содержала 44 инструкции и использовала адаптивную стратегию. Как только он успешно обнаружит начало вражеской программы, он прощупает небольшое расстояние впереди этого места. Если ему удастся убить врага, он запомнит расстояние и будет использовать его при последующих встречах. Если вместо этого он попадет в защищенное место, он выберет другое расстояние в тот самый момент, когда снова получит контроль. Все новые копии инициализировались с успешным значением. Таким образом, программа Морриса развилась в несколько подвидов, каждый из которых специально адаптирован для уничтожения определенного врага.
См. также
[ редактировать ]- Трон — фильм 1982 года, основанный на аналогичной концепции.
- Core War , более современная игра с той же концепцией.
Ссылки
[ редактировать ]- Алеф Налл. «Компьютерные развлечения: Дарвин», Программное обеспечение: практика и опыт , Том. 2, выпуск 1, стр. 93–96 (январь/март 1972 г.). Архивировано 16 июля 2011 года в Wayback Machine.
- Макилрой, доктор медицинских наук , Моррис, Р. , Высоцкий, В.А. (1971). «Дарвин, игра о выживании сильнейших среди программ» ( HTML-версия )
- Меткалф, Джон. «Дарвин: среди программ выживает сильнейший»