У обычного компьютера есть аппаратное и программное обеспечение; точно так же и созданная в игре «Жизнь» конфигурация, имитирующая работу ПК, имела «железо» и «программы». Первое моделировало кабели машины, а второе — программу, которую она должна читать. В своем прототипе компьютера в игре «Жизнь» Пол использовал не созданную Конвеем сеть из ружей, глайдеров и пожирателей, а более современную и эффективную технологию, основанную на исходном шаблоне из семи клеток под названием «Гершель». Его конфигурация состояла из нескольких миллионов живых клеток и программы, содержащей инструкции по поводу того, как вычислить сумму 1 + 2. «Для поиска суммы 2 + 3 понадобилось бы слишком много времени», — объяснил Пол. Конфигурация начиналась с космического корабля, поражающего устойчивую фигуру, которая порождала сигнал о столкновении с разными элементами, а те, в свою очередь, порождали другие сигналы, и маршрут перемещения сигналов по всей системе напоминал гигантскую игру в одну из разновидностей бильярда. В конце концов блок в регистре вывода показывал число 3. «Я был в восторге, — сказал Пол. — Если я могу сложить один и два, это говорит о том, что эта же машина может рассчитать миллионную цифру числа π, управлять системой Windows или, если ввести правильные параметры, смоделировать жизненный цикл звезды!»
Безусловно, компьютер, построенный Полом в игре «Жизнь», был неприменим на практике для выполнения всех этих задач. Но он вернул «Жизнь» к ее истокам. Джон фон Нейман выдвинул идею клеточного автомата во время изучения процесса самовоспроизведения. Конфигурация Пола открыла заманчивую возможность создания самовоспроизводящихся сущностей в игре «Жизнь».
На первый взгляд фигуры, эволюционирующие на решетке игры «Жизнь», кажутся живыми, так как по мере смены поколений они трансформируются и меняют направление. Однако для того, чтобы некий объект действительно был живым, он должен обладать способностью к самовоспроизведению. Но что это такое? Глайдер, например, воспроизводит себя достаточно просто. Это состоящая из пяти клеток фигура, которая каждые четыре поколения возвращается в исходную форму, сместившись на одну клетку вниз и одну в сторону. Фон Нейман хотел знать, как машина может
Мы с вами уже говорили о том, что компьютеры состоят из аппаратного и программного обеспечения. Давайте назовем аппаратное обеспечение «конструктором», а программу, которую мы вводим в конструктор, чтобы он построил копию себя, — «макетом». Мы рассчитываем на то, что после ввода макета конструктор воспроизведет новый конструктор вместе с новым макетом, по сути, создав копии двух исходных элементов. Но здесь возникает вопрос:
В итоге фон Нейман пришел к такому выводу: для того чтобы машина могла воспроизвести себя, необходимо ввести в систему новый элемент, который бы воссоздавал макет, другими словами — устройство для копирования макета. Таким образом, когда конструктор считывает макет, он строит новую машину, совершенную во всех отношениях, кроме одного — в ней нет макета. На последнем этапе устройство копирования должно создать копию макета и отправить ее в новую машину. Следовательно, самовоспроизводящаяся машина фон Неймана использует макет двумя разными способами: конструктор