Начальные приказы (Initial orders)
Тридцать одна команда, зашитая в телефонные переключатели, — маленький стартовый код, научивший EDSAC читать собственные программы.
Когда в мае 1949 года EDSAC включили, память была пуста, а машина без программы не может прочитать программу. Решением стало хранить тридцать одну команду постоянно в блоке униселекторов — вращающихся телефонных переключателей, чьи фиксированные положения служили крошечной постоянной памятью. Нажатие кнопки пуска копировало их в ячейки с нулевой и далее, после чего они брали управление и считывали остальное с бумажной ленты.
Код Дэвида Уилера не просто копировал. Он переводил формат, удобный человеку — буква для операции, десятичное число для адреса, буква для длины слова, — в двоичные слова, а значит, был ранним предком и загрузчика, и ассемблера. Вторая версия, осенью того же года, добавила относительную адресацию и умела собирать библиотечные подпрограммы с параметрами. Идея небольшого неизменного кода, втягивающего большой, по-прежнему называется bootstrap, хотя живёт теперь в прошивке, а не в телефонных переключателях.