Бой в памяти

Вот еще одна задачка, которая стала вполне доступной калькуляторам. Описание виртуальной машины смахивает на адресацию советских ПМК с количественной разницей и невозможностью (?) организации монитора.

Игра проходит на некоторой виртуальной машине, имеющей 8000 ячеек оперативной памяти, замкнутых в кольцо. Ячейки нумеруются с 0 до 7999. После ячейки 7999 снова следует нулевая. Например, числа 1988 и 9988 задают один и тот же адрес памяти.

Монитор Марс. Он управляет игрой. Перед началом вся память виртуальной машины заполнена нулями. Монитор размещает две соревнующиеся программы в случайные участки памяти (не ближе 1000 ячеек одна от другой) и выполняет по очереди по одной команде из каждой программы. Программа представляет собой последовательность команд Каждая команда занимает одну ячейку памяти. Как только монитор пытается выполнить нечто, не являющееся командой, он объявляет программу, в которой это произошло, проигравшей. Таким образом, цель каждой программы - внести в тело программы противника некорректный код и при этом защитить от повреждений себя.

Более подробное описание условий и языка в приложенном файле.

File attachments: 
AttachmentSize
File Lilitko-BoiVPamiati-stInfO.djvu35.98 KB

Comments

Когда-то в молодости читал об этом в №1 журнала "Компьютер". Это называлось "Стержневые войны" в истории создания компьютерных вирусов. Это, так сказать, последняя ступенька перед созданием настоящего вируса.

Мои программируемые калькуляторы:
Б3-21, Б3-34, МК-61, МК-52, МК-85
CASIO: cfx-9850GB+, fx-9750G+, fx-9750GII, fx-9860G, Algebra fx-2.0, fx-5800P, fx-7400G+
HP: 50G, 48G, 35s
TI: Nspire-CAS, Voyage-200, 89Titanium
SHARP EL-9600G