К 100-летию его создателя — Мориса Уилкса
6 мая 1949 г. профессор Кембриджского университета Морис Уилкс (1913--2010) вычислил квадраты чисел от 0 до 99 на своей “первой в мире полностью электронной” ЭВМ EDSAC (Electronic Delay Storage Automatic Calculator) с “фон-Ноймановской архитектурой”, управлявшейся хранимой в памяти программой, что можно считать “днем рождения электронных компьютеров”.
Строго говоря, “самый первый компьютер” с управляющей программой и памятью — это Z-3 Конрада Цузе (Берлин, 1941 г.), но его основными элементами были телефонные реле.
В 1934 г. Уилкс окончил Кембриджский колледж Св. Джона (основан в 1511 г.), где учились поэт-романтик Вильям Вордсфорт (William Wordsworth, 1770--1850), математик Брук Тейлор (1685--1731, ряд Тейлора), физик Поль Дирак (1902--1984) и еще девять Нобелевских лауреатов.
Потом он поступил в легендарную Кавендишскую лабораторию (физфак Кембриджа), где в 1937-м защитил диссертацию о распространении радиоволн в ионосфере и остался ассистентом в лаборатории математики, а потом в новой лаборатории вычислительной техники. В 1939--1945 гг. служил в армии инженером по радиолокации и вернулся уже на должность заведующего.
В мае 1946 г. знакомый Уилкса астроном Лесли Джон Комри (1893--1950) привез доклад знаменитого математика Яноша фон Ноймана (с 1931 г. работал в США; известен как Джон фон Нойман) о начавшемся в США проекте ЭВМ EDVAC (First Draft of a Report on the EDVAC). Комри одолжил его Уилксу на одну ночь (!).
Л. Дж. Комри, в 1918 г. молодой новозеландский доброволец, на фронте лишился ноги и страдал сильной глухотой; потеряв подвижность, он еще в госпитале увлекся счетной машиной. Потом занялся астрономией, математикой и вычислительной техникой и в 1938 г. создал первую британскую машинно-счетную станцию (первая в СССР — 1926 г.). В годы войны во главе 30 сотрудников рассчитывал таблицы для Королевских ВВС (как и группа И. Я. Акушского в Москве, при штабе ВВС).
Увлекшись концепциями фон Ноймана о записи и хранении программы в ЭВМ, Уилкс сумел попасть на лекции “Теория и методы конструирования электронных цифровых компьютеров” в Школе Мура при Пенсильванском университете (август 1946 г.). Опоздав к началу, он успел к детальному описанию ENIAC и обсуждению принципов создания EDVAC, познакомился с математиками Дугласом Р. Хэртри (численный анализ в атомной физике) и Германом Х. Гольдштайном, конструкторами Джоном У. Мокли, Джоном Пр. Экертом и Ховардом Х. Айкеном и обсуждал с ними проблемы развития ЭВМ
Уилкс писал: “Главное событие моей жизни — в 1946 г. удалось прослушать уникальный учебный курс по компьютерам, который произвел на меня сильнейшее впечатление; о достижениях школы Мура и других зачинателей компьютерной техники тогда знали немногие. Слушателями этого курса были 28 человек из 20 организаций. Основные преподаватели -- Дж. Мокли и Пр. Экерт, успешные разработчики ENIAC (первая большая ЭВМ, но без программ в памяти) и принципов конструирования EDVAC, они научили нас принципам построения цифрового компьютера…”.
В Кембридже ЭВМ EDSAC Уилкса с хранимой программой сделали силами математической лаборатории к 6 мая 1949 г. Судьба явно наградила его научное бескорыстие — он, сам того не ожидая, “пришел к финишу” первым, не имея “производственных мощностей”, чтобы соперничать с авторами EDVAC, казалось, бывшими “в пяти минутах” от успеха. Казалось…
Авторитет вошедшего в 1944 г. в “команду ЭВМ ENIAC” фон Ноймана привлек деньги военных на улучшенный проект — EDVAC. Однако в июне 1945 г. он сам обобщил результаты коллективных работ по ЭВМ в “том самом” отчете (101 стр.), где упоминал и принцип хранения программы в памяти компьютера вместе с данными (потому и названый “архитектура фон Ноймана”), и передал этот отчет куратору от армии по разработкам ЭВМ математику Г. Гольдштайну. Тот разослал его 24 ученым в США и Британии, поставив автором одного лишь фон Ноймана, что крайне разозлило Экерта и Мокли, фактически лишавшихся прав на собственные идеи и патенты.
Вдобавок ради “только что появившегося новичка” Гольдштайн грубо нарушил военную секретность, из-за которой они сами не могли опубликовать свои изобретения. Экерт так возненавидел Гольдштайна, что и три десятилетия спустя не желал находиться в одном с ним помещении.
Из-за патентного конфликта администрация требовала лишить разработчиков прав на личные финансовые выгоды. Мокли и Экерт возмутились такой постановкой вопроса и в марте 1946 г. ушли из института Мура, открыв свою фирму, а вскоре из проекта ушли и фон Нойман с Гольдштайном. Финальная смета EDVAC в пять раз (!) превысила проектную; работы затянулись на три года.
Десять лет труда над ЭВМ принесли Мокли и Экерту по 300 000 долл., но получены эти деньги были лишь от продажи их фирмы и за патенты на ENIAC, однако в 1973 г. Федеральный суд аннулировал их авторские права на ENIAC, так как они использовали идеи Джона Атанасова создавшего электронное устройство-прототип еще в начале 1940-х (даже не упомянув его).
Взгляды Уилкса и его европейских коллег позже выразил профессор Том Килбурн — автор ЭВМ “Манчестер МАРК-1” (1948--1950): “Тогда деньги не имели никакого отношения к нашей работе. Нас интересовала только наука — такие, как Гейтс, живут уже в другом мире”.
В 1949 г. Уилкс не знал, что работы по созданию ЭВМ ведутся не только в США -- в разрушенном войной Киеве группа академика С. А. Лебедева уже детально разработала ЭВМ МЭСМ, а годом ранее, в 1948-м, в Москве академик И. С. Брук и Б. И. Рамеев запатентовали полный проект современной ЭВМ.
О своем “иностранном опыте” С. А. Лебедев докладывал госкомиссии: “Я имею данные по 18 американским машинам, это реклама без каких-либо сведений о том, как машины устроены. В вопросе постройки ЭВМ мы должны догонять заграницу (своими силами) и должны сделать это быстро. По данным заграничной литературы, проектирование и постройка машины ведется 5—10 лет, мы хотим построить ее за два года. Американские показатели следующие: время умножения на ENIAC — 5,5 мс, на EDVAC — 4 мс, на нашей машине 8—9 мс…”.
EDSAC почти повторял EDVAC — перфоленты ввода-вывода, 3000 электронных ламп, 32 ртутные ультразвуковые линии задержки (РУЛЗ), в каждой — 32 слова по 17 бит (с битом знака), всего 1024 знака (работали 512 двоичных слов). Дополнительные линии задержки поддерживали слова по 35 двоичных разрядов (включая бит знака), скорость 100—15 000 двоичных опс, мощность — 12 кВт, площадь — 20 м².
Но вот в программной части Уилкс стал первопроходцем. “Архаичное” двоичное кодирование команд он заменил кодами из букв и коротких английских слов и добавил мнемонику, отображая каждую команду заглавной буквой: S — “вычитание”, Т — “передать в память”, Z — “остановка машины” и т. д.
Этапным новшеством стала библиотека подпрограмм. Первые программисты записывали рутинные подпрограммы в блокноты, чтобы не составлять их заново, но в зависимости от места размещения подпрограммы в памяти изменялись адреса расположения ее команд и переменных, что было проблемой.
Уилкс автоматизировал настройку подпрограмм на точное место в памяти, написав несколько десятков унифицированных подпрограмм и собрав их в библиотеку: вычисления с плавающей запятой, комплексными числами, векторами и матрицами, логарифмы, функции, корни и т. д.
Теперь по короткой команде компьютер сам настраивал и размещал подпрограммы внутри основной программы. Библиотеку подпрограмм и мнемоническую схему, собиравшую их последовательности, он назвал assembly system (собирающая система) отсюда — “ассемблер”.
Еще одно, принципиально важное, изобретение Уилкса – микрокод (целая последовательность инструкций записывалась одной программной командой/строкой) позже названный “микропрограммированием”, придал ЭВМ дополнительную гибкость — система управления изменялась без изменения конструкции. Он же основал в 1957 г. Британское компьютерное общество и был его первым президентом.
EDSAC много использовали; в 1952 г. А. Сэнди Дуглас даже сделал на нем (возможно, первую) игру в “крестики-нолики” — "OXO" с выводом на экран. В СССР в начале 1950-х ее же и шахматные задачки придумал персонал Лебедевской БЭСМ.
С 1965-го Уилкс был профессором (и до 1980 г. директором) института.
В 1998 г. его ждал сюрприз — участие в симпозиуме “Компьютер в Европе” (Киев), там ветераны-ассистенты С. А. Лебедева (Б. Н. Малиновский, З. Л. Рабинович и др.) возили его в “ту самую лабораторию” и институт, где в 1948-1951 гг. рождалась МЭСМ. Впечатлили старика Уилкса и прогулки по Киевскому художественному рынку на Андреевском спуске (у Дома Булгакова) в окружении ровесников — создателей первых советских ЭВМ.