[Перевод] Алан Тьюринг, отец современного компьютера

xrw3sknyomut-1scxzntp4rjtc0.jpeg
c-csftyg6u7l9em-d667zr2jfio.jpeg

Вступление


Каждый, кто умеет пользоваться компьютером, знает, что для выполнения какой-либо операции на нем необходимо открыть соответствующую программу, которая хранится в его памяти. Однако жизнь не всегда была такой простой, как сейчас. Первые большие электронные цифровые компьютеры, британский «Колосс» (1944 год) и американский ENIAC (1945 год), не умели хранить программы в памяти. Чтобы настроить эти компьютеры на новую задачу, необходимо было перекоммутировать их, то есть вручную переподключить кабели и переустановить переключатели. Основной принцип работы современного компьютера, подразумевающий управление машиной с помощью программы, которая хранится в ее памяти и представляет собой закодированные инструкции, был сформулирован Аланом Тьюрингом.

Абстрактная универсальная вычислительная машина, предложенная Тьюрингом в 1936 году и вскоре получившая название просто универсальной машины Тьюринга, состоит из неограниченной памяти, в которой хранятся данные и инструкции, и сканера, перемещающегося вдоль ячеек памяти, символ за символом считывающего найденные данные и записывающего в ячейки следующие символы. При вводе различных программ в память машина выполняет те или иные вычисления. Создание единой машины, которая имела бы фиксированную структуру и с помощью хранящихся в памяти закодированных инструкций, как хамелеон, превращалась бы из машины, предназначенной для выполнения одной задачи, в машину, успешно решающую совершенно другую, было поистине фантастической идеей.

Тьюринг показал, что его универсальная машина способна справиться с любой задачей, выполняемой путем механического заучивания (откуда и следует такая характеристика, как универсальность). В наше время, когда множество людей владеет устройствами, представляющими собой физическую реализацию универсальной машины Тьюринга, его концепция вычислительной машины, функционирующей по принципу «одного окна», может показаться столь же очевидной, как и идея колеса. Но в 1936 году, когда инженеры традиционно проектировали под разные задачи отдельные машины, она произвела настоящую революцию.

К концу 1945 года, благодаря разработкам военного времени в области цифровой электроники, группы ученых в Великобритании и Соединенных Штатах приступили к аппаратной реализации универсальной машины Тьюринга. Сам он возглавлял группу, работавшую в Национальной физической лаборатории (NPL) в Теддингтоне (Лондон). Технический отчет Тьюринга Proposed Electronic Calculator, датируемый концом 1945 года и содержащий его идеи об архитектуре Автоматической вычислительной машины (ACE), стал первым относительно полным описанием электронного цифрового компьютера, умеющего хранить программы в памяти.

В Соединенных Штатах мечту Тьюринга о создании универсальной вычислительной машины с хранимой в памяти программой разделял венгерско-американский математик Джон фон Нейман, который узнал о ней еще до войны. Они с Тьюрингом познакомились в 1936−1938 годах в Принстонском университете. Так же как и Тьюринг, фон Нейман осознавал потенциал военных разработок в сфере высокоскоростной цифровой электроники. В документе First Draft of a Report on the EDVAC, завершенном весной 1945 года, фон Нейман также описал устройство электронного цифрового компьютера с хранимой в памяти программой (EDVAC означает «Электронный автоматический вычислитель с дискретными переменными»). Отчет фон Неймана, на который Тьюринг ссылался в Proposed Electronic Calculator, носил более абстрактный характер по сравнению с работой Тьюринга, в нем мало говорилось о программировании и электронике. Гарри Хаски, инженер-электроник, который впоследствии разработал первый подробный проект аппаратной реализации EDVAC, утверждал, что информация в отчете фон Неймана не помогла ему. Тьюринг, напротив, представил подробные схемные решения, полные спецификации аппаратных средств, образцы программ в машинном коде и даже смету расходов на создание ACE.

Первая часть статьи «Алан Тьюринг, «отец» современного компьютера» содержит обзор основного вклада Тьюринга в развитее компьютерной техники и вычислений, включая его новаторскую деятельность в областях, которые сейчас называют искусственным интеллектом и искусственной жизнью.

Вторая часть рассказывает о появлении тьюринговского ACE. Это одна из самых выдающихся историй, связанных с развитием компьютеров. Реализация проекта с самого начала вызвала множество разногласий. Тьюринг видел себя создателем «мозга». «В работе над ACE, — заявил он, — меня больше интересует возможность создания моделей мозга, чем практическое применение машины для вычислений». Работодатели Тьюринга, напротив, рассчитывали превратить ACE в национальный компьютер Великобритании, который станет единственной машиной, способной удовлетворить вычислительные потребности «всей страны». В целом история получилась довольно печальной. Легкомысленные администраторы растратили впустую блестящие технологические достижения Тьюринга и его группы. К моменту успешного завершения проекта Тьюринг навсегда отвернулся от своего детища. В основном вторая часть этой статьи посвящена словам непосредственных участников указанных событий, приведенным с опорой на документы того времени. (Сегодня они доступны онлайн в Архиве имени Тьюринга по истории вычислительной техники.)

Третья часть статьи «Алан Тьюринг, «отец» современного компьютера» представляет собой цифровое факсимиле 48-страничного отчета Тьюринга Proposed Electronic Calculator, описывающего его революционную электронную вычислительную машину. В него включены оригинальные иллюстрации Тьюринга.

Хронология событий


Роль Тьюринга в развитии вычислительной техники


Содержание


1. Универсальная машина Тьюринга
2. Криптоанализ во время Второй мировой войны
3. Проект автоматической вычислительной машины (АСЕ) Тьюринга
4. АСЕ как преемник универсальной машины Тьюринга
5. АСЕ и американский EDVAC
6. Влияние Тьюринга на Джона фон Неймана, одного из создателей EDVAC
7. Pilot АСЕ и серийная модель DEUCE
8. Семейство компьютеров АСЕ
9. Тьюринг и искусственный интеллект (AI)
10. Тьюринг и искусственная жизнь (A-Life)
11. Манчестерский компьютер
12. Манчестерский компьютер и Джон фон Нейман
13. Тьюринг становится участником Манчестерского проекта
14. Другие первые компьютеры с хранимой в памяти программой

1. Универсальная машина Тьюринга


Тьюринг описал свои абстрактные вычислительные машины в своей первой крупной публикации On Computable Numbers, with an Application to the Entscheidungsproblem (1936 год). (Он называл их просто вычислительными машинами, название «машины Тьюринга» дал им американский логик Алонзо Чёрч.) В работе On Computable Numbers впервые была выдвинута важная для современного компьютера идея, а именно концепция управления вычислительной машиной с помощью программы, хранимой в ее памяти и представляющей собой закодированные инструкции. Эта работа сильно повлияла на развитие электронного цифрового компьютера с хранимой в памяти программой в 1940 годах, что часто игнорировали или отрицали специалисты по истории компьютеров.

Машина Тьюринга — абстрактная концептуальная модель. В ее состав входит сканер и бесконечная лента памяти. Лента разделена на клетки, каждая из которых может быть пустой или содержать один символ (например, 0, 1 или любой другой символ конечного алфавита). Сканер перемещается вдоль ленты, сканируя по одной клетке за раз. Он считывает символы с ленты и записывает на нее новые. Лента одновременно служит как памятью, так и механизмом ввода-вывода, а кроме того, на ней может быть записана состоящая из инструкций программа. Сама лента при этом бесконечна — ведь целью Тьюринга было показать, что существуют такие задачи, которые машины Тьюринга не могут выполнить даже за неограниченное время при неограниченной рабочей памяти.

kk5mydzaqxvpmh4q4rjxvcevahq.jpeg

Машина Тьюринга способна совершать небольшой набор базовых операций: перемещение на одну клетку влево/вправо, печать и изменение состояния. Сканер всегда перемещается на одну клетку за раз и может напечатать символ в просканированной клетке (после удаления уже имеющегося в ней). Меняя свое состояние, машина может, как выразился Тьюринг, «вспомнить некоторые символы, которые она «видела» (сканировала) ранее». Тьюринг не уточнил механизм изменения состояния — машина Тьюринга является абстракцией, так что описывать конкретный механизм необязательно, но его легко себе представить. Предположим, что устройство внутри сканера состоит из циферблата с конечным числом позиций, помеченных как a, b, c и т. д., так что каждая позиция считается отдельным состоянием. Изменение состояния происходит путем перемещения стрелки циферблата с одной помеченной позиции на другую. Это устройство функционирует как простая память — например, циферблат с тремя позициями можно использовать для записи того, содержала ли покинутая сканером клетка 0, 1 или была пустой.

Работа машины регулируется (как называет ее Тьюринг) таблицей инструкций. Он привел следующий простой пример: пусть машина, назовем ее M, снабжена бесконечной пустой лентой, а сканер установлен в любой ее клетке. M имеет четыре состояния, обозначенные как a, b, c, d, и изначально находится в состоянии a.

2l64wjxc-_tfewubtb2jvtbx4vy.png

В приведенной таблице R — обозначение команды move right one square, а P[0]/P[1] — обозначение команд print 0/1 on the scanned square соответственно. Согласно верхней строке таблицы, если вы находитесь в состоянии a и сканируемая клетка пуста, вы должны вывести 0 в просканированной клетке, переместиться на одну клетку вправо и перейти в состояние b. В соответствии с этой таблицей инструкций (или программой) машина M печатает на ленте чередующиеся двоичные цифры 0 1 0 1 0 1 0 1…, разделяя их пустыми клетками и до бесконечности перемещаясь вправо относительно своей начальной позиции.

Универсальная машина Тьюринга (UTM)

Универсальная машина Тьюринга (UTM) универсальна в том смысле, что ее можно запрограммировать на выполнение любых расчетов, с которыми в принципе способен справиться человек-вычислитель — служащий, действующий в соответствии с «эффективной» или заученной процедурой. До появления электронного компьютера многие тысячи людей-вычислителей были заняты в бизнесе, на государственных предприятиях и в научно-исследовательских учреждениях. Универсальная машина имеет единую фиксированную таблицу инструкций, которая встроена, если так можно выразиться, «жестко вмонтирована» в нее. Согласно этой фиксированной таблице, UTM считывает и выполняет закодированные инструкции, записанные на ленте, то есть реализует концепцию вычислительной машины с хранимой в памяти программой, идею об управлении вычислительной машиной путем сохранения состоящей из инструкций программы в ее памяти.

Таблица инструкций по выполнению желаемой задачи помещается на ленту UTM в закодированной подходящим образом форме, так что первая строка таблицы занимает несколько первых клеток ленты, вторая строка — следующие несколько клеток и так далее. (Тьюринг называет эту закодированную форму инструкций «стандартным описанием» таблицы инструкций.) UTM считывает инструкции и выполняет их на ленте. На ленту могут быть внесены различные программы, что позволяет UTM выполнять любые задачи, для которых может быть составлена таблица инструкций машины Тьюринга. Таким образом, единая машина фиксированной структуры может производить любые вычисления, осуществляемые с помощью любой машины Тьюринга.

В 1936 году UTM существовала только лишь как идея. Но Тьюринг с самого начала интересовался возможностью построить ее в действительности. Знакомство ученого с электроникой в военное время стало ключевым связующим звеном между его ранней теоретической работой и проектом электронного цифрового компьютера с хранимой в памяти программой, разработанным в 1945 году.

2. Криптоанализ во время Второй мировой войны


Тьюринг завершил разработку логической структуры знаменитой машины Bombe, предназначенной для расшифровки сообщений немецкой «Энигмы», в последние месяцы 1939 года. Его проекты были переданы Гарольду Доку Кину из компании British Tabulating Machine в Летчуэрте, где и велась инженерная разработка. Первая Bombe, получившая название «Победа», была установлена в Правительственной школе кодов и шифров в Блетчли-Парке в начале 1940 года, а усовершенствованная модель Agnus Dei (позднее превратившаяся в «Агнес» и «Агги») — летом того же года. Agnus содержала гениальную диагональную доску Гордона Уэлчмана.

Bombe представляла собой вычислительную машину — этот термин обозначает любую машину, способную выполнять работу, с которой в принципе мог бы справиться человек-вычислитель, —, но имела специализированное, очень узкое назначение, а именно нахождение позиций роторов «Энигмы», определяющих ключ зашифрованного сообщения, на сверхчеловеческой скорости. Bombe выдавала несколько вариантов, которые вручную проверялись на машине «Энигма» (или ее копии) — если какой-либо из них давал немецкий текст (даже если это были всего несколько слов, за которыми следовала чепуха), он считался верным.

slh1iqpgddvyrxbjcnhgeyfms1g.jpeg
«Энигма»

Bombe была построена на электромагнитных реле, хотя некоторые ее более поздние версии стали электронными (т. е. создавались на основе электронных ламп) и, как следствие, более быстрыми. Реле представляют собой небольшие переключатели с подвижным металлическим стержнем, который размыкает и замыкает электрическую цепь, перемещаясь под действием магнитного поля. Электронные лампы (в США их называли вакуумными лампами) работают в несколько раз быстрее, чем реле, поскольку в лампе отсутствуют какие-либо подвижные части, в ней движется только пучок электронов.

Во время атаки на «Энигму» Блетчли-Парк обратился на Исследовательскую станцию Центрального почтамта в Доллис-Хилл в Лондоне с просьбой о создании машины на основе реле для совместного использования с Bombe. При обнаружении с помощью Bombe настроек «Энигмы», отвечающих за шифрование того или иного сообщения, они должны были передаваться на эту машину, которая бы автоматически расшифровывала и распечатывала исходный немецкий текст. Доллис-Хилл направил в Блетчли-Парк инженера Томаса Флауэрса. В итоге построенная Флауэрсом машина не использовалась, но вскоре ему суждено было стать одной из величайших личностей в области криптоанализа в период Второй мировой войны. Благодаря своим довоенным исследованиям, Флауэрс (по его собственным словам), возможно, был единственным в Великобритании, кто осознавал, что электронные лампы подходят для широкого применения в сфере высокоскоростных цифровых вычислений.

e4dzrzelqyr8c4hs7i6mcce55u0.jpeg
Томас Флауэрс, создатель «Колосса»

Первый в мире большой электронный цифровой компьютер «Колосс» был спроектирован и построен Флауэрсом и его командой в Доллис-Хилл в 1943 году при участии кембриджского математика Макса Ньюмана, руководителя отдела в Блетчли-Парке, называвшегося просто «Ньюманри». (До войны Тьюринг посещал лекции Ньюмана по математической логике в Кембридже; эти лекции положили начало исследованиям, по результатам которых была написана статья On Computable Numbers.) «Колосс» был запущен в начале 1944 года, за два года до ввода в эксплуатацию первой аналогичной американской машины, ENIAC. Он использовался для расшифровки сообщений, зашифрованных с помощью машины «Лоренц», которая появилась в 1941 году и была более продвинутой, чем «Энигма».

td0yt7ex6ijurhfj7gf4avru6iw.jpeg
Шифровальная машина «Schlüsselzusatz» компании Lorenz

Тьюринг на непродолжительное время присоединился к участию в атаке на машину «Лоренц» в 1942 году и разработал криптоаналитический метод, известный под названием «Тьюрингери». Он стал третьим гениальным вкладом Тьюринга в расшифровку немецких кодов — к двум другим относится предложенная им конструкция Bombe и определение типа «Энигмы», использовавшегося подлодками в Атлантике. Как отметил криптоаналитик Джек Гуд, «я не утверждаю, что сделанное Тьюрингом обеспечило нам победу в войне, но осмелюсь сказать, что без него мы могли бы ее проиграть».

«Тьюрингери» был ручным методом, для использования которого требовалась бумага, карандаш и ластик. В основе метода лежала идея формирования так называемой дельты потока букв. Она представляет собой поток, образующийся в результате объединения каждой пары соседних букв (метод «Тьюрингери» и процедура формирования дельты подробно объясняются в работе Colossus: The Secrets of Bletchley Park’s Codebreaking Computers). Тьюринг обнаружил, что процедура формирования дельты раскрывает информацию, которая иначе осталась бы нераскрытой. Его находка имела большое значение для последующих достижений: алгоритмы, реализованные в «Колоссе» (и в предшествовавшей ему машине «Хит Робинсон»), основывались на этом простом, но блестящем наблюдении. В этом смысле вся машинная атака на «Лоренц» берет начало в этой фундаментальной догадке Тьюринга.

vxitoudcsvnzxzzsf670enyfuce.jpeg
«Робинсон», предшественник «Колосса». Эта машина, которая в конечном счете получила название «Старый Робинсон», заменила оригинальный «Хит Робинсон» (по внешнему виду они были похожи)

Британское правительство держало существование «Колосса» в секрете. До 1970 годов мало кто знал, что электронные вычисления успешно использовались в период Второй мировой войны, и только в 2000 году Великобритания и США, наконец, обнародовали полный отчет о роли «Колосса» в военное время. Таким образом, лишь спустя десятки лет после войны фон Нейман и другие сопричастные рассказали миру о том, что ENIAC был «первой электронной вычислительной машиной». (На самом деле устройство, которое, возможно, было первым малым электронным компьютером, собрали Джон Атанасов и его студент Клиффорд Берри в Колледже штата Айова. Их «крошечный» цифровой компьютер содержал около 300 электронных ламп, тогда как в «Колоссе» их насчитывалось 2400. Машина Атанасова, разработанная для одной очень специфической математической задачи (решение систем линейных алгебраических уравнений), практически не могла быть запрограммирована. Хотя электронные схемы компьютера функционировали, он в целом так никогда и не заработал из-за ошибок, обусловленных проблемами с устройством для считывания с двоичных перфокарт. Строительство компьютера было остановлено в 1942 году, когда Атанасов ушел из Колледжа штата Айова, и так и осталось незавершенным.)

xhmkbhldu-zjcjkxxrxwnlgplka.jpeg
«Колосс» и два оператора, Дороти дю Буассон (слева) и Элси Букер (справа)

Флауэрс первым убедительно доказал, что большая электронная вычислительная техника реализуема на практике. Однако, несмотря на то что «Колосс» в значительной мере обладал многофункциональностью, он был далеко не универсален и не мог хранить инструкции. Как и в случае с появившимся позднее ENIAC, для подготовки «Колосса» к новой задаче требовалось вручную перекоммутировать его с помощью штекеров и переключателей. Во время создания «Колосса» Нейман показывал Флауэрсу публикацию Тьюринга On Computable Numbers, ключевая идея которой состояла в сохранении закодированных инструкций в памяти, но Флауэрс не принял ее во внимание.

Флауэрс рассказывал, что как только Тьюринг увидел «Колосс» в действии, то сразу же начал ждать, когда появится возможность реализовать его универсальную вычислительную машину. Вне всяких сомнений, к 1944 году Ньюман также твердо планировал создать универсальную машину с использованием электронных технологий. В феврале 1946 года, через несколько месяцев после своего назначения профессором математики в Манчестерском университете, Ньюман написал фон Нейману в США:

Я… надеюсь заняться здесь секцией вычислительной техники, поскольку в последние два-три года очень заинтересовался подобными электронными устройствами. Примерно полтора года назад я решил попробовать запустить машину, когда преуспею в этой сфере. Конечно, я поддерживаю тесный контакт с Тьюрингом.

Дальнейшие события с участием Ньюмана описываются в главе «Манчестерский компьютер». Тьюринг же получил возможность воплотить задуманное с неожиданным появлением Джона Уомерсли (см. главу 15 «Уомерсли приглашает Тьюринга на работу в Национальную физическую лабораторию»). К тому времени Тьюринг усердно занимался электроникой (на завершающем этапе войны он читал вечерний курс лекций по теории электронных ламп).

3. Проект Автоматической вычислительной машины (АСЕ) Тьюринга


Тьюринг понял, что скорость и объем памяти играют решающую роль в вычислениях (по словам его помощника в Национальной физической лаборатории Джима Уилкинсона, Тьюринг был «одержим идеей о высокоскоростной машине»). Разработанная Тьюрингом конструкция ACE имела много общего с современной архитектурой RISC (компьютер с сокращенным набором команд) и требовала быстродействующей памяти примерно того же объема, что и первый компьютер Apple Macintosh. По стандартам того времени это был огромный объем.

ACE Тьюринга и EDVAC, который был завершен только в 1952 году, принципиально отличались друг от друга по конструкции. У EDVAC имелся (как он сейчас называется) центральный процессор, или ЦПУ, в то время как специфические логические или числовые функции ACE, например сложение, ассоциировались с различными временными хранилищами и другими устройствами памяти. Так, если два числа передавались какому-либо конкретному адресату в памяти, то там происходило их суммирование (результат которого мог быть передан куда-либо еще согласно следующей инструкции). В отличие от EDVAC с процессором, ACE не обладал единым узлом или блоком, где выполнялись бы все логические и числовые операции.

Программы ACE состояли исключительно из таких инструкций, как «перенос содержимого временного хранилища 15 во временное хранилище 16». Вместо того чтобы писать математически значимые инструкции вида

ADD x to y AND STORE THE RESULT IN z 
or
 MULTIPLY x BY y AND STORE THE RESULT IN z


программист ACE должен был составить серию «низкоуровневых» инструкций по передаче данных, которые давали бы такой же результат. Связанное с этим различие между ACE и EDVAC заключалось в том, что, согласно предложенному Тьюрингом проекту, сложные операции на его компьютере должны были выполняться за счет сложного программирования, а не сложного оборудования. Философия Тьюринга состояла в отказе от дополнительного оборудования (такого как умножители, делители и элементы для вычислений с плавающей запятой) в пользу программного обеспечения. Он пренебрежительно отзывался об «американской традиции решения проблем с помощью большого количества оборудования, а не интенсивной мыслительной деятельности».

Чтобы ускорить выполнение программы, Тьюринг предложил сохранять инструкции в памяти не последовательно, а на тщательно выбранных позициях, так чтобы каждая инструкция при этом содержала ссылку на позицию следующей. Такой подход означал доступ к любой инструкции без задержек, в точности тогда, когда в ней возникает необходимость. Кроме того, в целях ускорения работы Тьюринг предусмотрел быстродействующую память небольшого объема, предназначенную для временного хранения чисел, которые чаще всего используются на том или ином этапе вычислений. Как утверждал Уилкинсон в 1955 году, Тьюринг был «первым, кто понял, что можно преодолеть трудности, связанные со временем доступа к… ртутным линиям… или накопителям на магнитных барабанах, снабдив компьютер быстродействующим накопителем сравнительно небольшого объема. Многие коммерческие машины в США широко используют этот принцип».

Бюрократические проволочки в Национальной физической лаборатории (описанные во второй части этой статьи) привели к тому, что более-менее заметный прогресс в строительстве ACE был достигнут лишь спустя несколько лет после того, как Тьюринг в 1945 году завершил работу над статьей Proposed Electronic Calculator, посвященной проекту ACE. В ожидании сборки аппаратной части Тьюринг и его группа первыми начали заниматься компьютерным программированием и написали библиотеку сложных математических программ для проектируемой машины (см. главу 17 «Тьюринг становится основоположником компьютерного программирования»). В начале 1947 года группа Тьюринга приступила к постройке уменьшенной версии ACE под названием Test Assembly (см. главу 19 «Вторая попытка строительства ACE: эпоха Хаски и Test Assembly»). К сожалению, работа над этим маленьким компьютером была остановлена в том же году по распоряжению некомпетентного руководства Национальной физической лаборатории. Если бы проект не был прерван, Test Assembly, вероятно, стал бы первым в мире рабочим электронным компьютером с хранимой в памяти программой, так что эта честь не досталась бы манчестерскому Baby, который сам по себе отличался весьма ограниченной функциональностью (см. главу 11 «Манчестерский компьютер»).

7qyxlfgypqkyarizygddsipq4ui.jpeg
Часть Национальной физической лаборатории. Test Assembly была построен здесь, в кладовке дворника

4. АСЕ как преемник универсальной машины Тьюринга


Как известно, универсальная машина Тьюринга, предложенная в 1936 году, не получила явного упоминания в работе Proposed Electronic Calculator, в связи с чем возникает вопрос, является ли универсальная машина родоначальницей ACE в принципе. Тем не менее некоторые из отрывочных заметок Тьюринга проливают свет на эту проблему. Заметки представляют собой отдельные страницы черновика Proposed Electronic Calculator, из которых следует, что Тьюринг считает АСЕ универсальной машиной Тьюринга. Он объясняет, почему устройство памяти, описанное в статье On Computable Numbers, нельзя «реализовать на практике как есть».

На лекции в 1947 году Тьюринг ясно дал понять, что рассматривает ACE как «практическую версию» универсальной машины Тьюринга:

Несколько лет назад я занимался тем, что сейчас можно описать как исследование теоретических возможностей и ограничений цифровых вычислительных машин. Я обдумывал возможность создания машин с центральным механизмом и бесконечной памятью, имеющей вид бесконечной ленты… Нетрудно показать, что можно создать специальную единую машину такого типа, которая будет решать любые задачи… Эту специальную машину можно назвать универсальной, работает она довольно просто. Когда мы решили, какую машину хотим имитировать, мы пробиваем на ленте универсальной машины описание… Универсальная машина должна лишь просмотреть это описание, чтобы понять, что нужно делать на каждом этапе. Таким образом, сложность машины, которую мы имитируем, сосредоточена на ленте и никак не проявляется в конструкции самой универсальной машины… Подобные ACE [ц]ифровые вычислительные машины… фактически представляют собой практические версии универсальной машины. Есть некий центральный комплекс электронного оборудования и память большого объема. Когда необходимо решить ту или иную задачу, инструкции по выполнению соответствующего вычислительного процесса помещаются в память ACE…

В письме Тьюринга кибернетику Уильяму Россу Эшби вновь подчеркивается принципиальный вопрос о сходстве АСЕ и универсальной машины Тьюринга:

ACE фактически аналогична «универсальной машине», описанной в моей статье On Conputable [sic] Numbers… [Б]ез изменения самой конструкции машину теоретически можно использовать в качестве модели любой другой машины, если заставить ее запомнить соответствующий набор инструкций.

5. АСЕ и американский EDVAC


Концепция цифрового компьютера с хранимой в памяти программой получила широкую известность сразу после Второй мировой войны благодаря работам и харизматичным публичным выступлениям Джона фон Неймана. Он написал First Draft of a Report on the EDVAC и впоследствии руководил проектом по созданию компьютера в Институте перспективных исследований в Принстоне. Построенная в ходе проекта машина, компьютер IAS, хоть и не была первой запущенной в эксплуатацию в США (она начала работать летом 1951 года), сильнее всего повлияла на первые американские компьютеры и стала предшественницей IBM 701, первого электронного компьютера с хранимой в памяти программой, серийно выпускавшегося компанией.

d5rdiuqtgv0ssbhdd8ez9kvjvty.jpeg
Фон Нейман рядом с компьютером IAS в Принстоне. Ряд контейнеров — это быстродействующая память. Каждый контейнер содержит одну электронно-лучевую трубку, называемую трубкой Уильямса по имени ее изобретателя Ф.К. Уильямса

Отчет First Draft of a Report on the EDVAC фон Неймана получил широкое распространение. Тьюринг, безусловно, рассчитывал, что читать его Proposed Electronic Calculator будут те, кто уже знаком с работой фон Неймана. В конце первого раздела Proposed Electronic Calculator он пишет:

В этом документе представлены достаточно полные сведения о предлагаемом вычислителе. Однако рекомендуется читать его вместе с отчетом фон Неймана First Draft of a Report on the EDVAC.

Насколько же First Draft of a Report on the EDVAC повлиял на содержание Proposed Electronic Calculator (который был выпущен на несколько месяцев позже)? Работа Тьюринга в некоторой степени сохраняет терминологию и обозначения фон Неймана, что разумно, так как делает текст более понятным. Для изображения логических элементов EDVAC фон Нейман использовал модифицированную версию схематической записи, введенной Мак-Каллоком и Питтсом для графического представления нейронных сетей. Тьюринг перенял эту модифицированную запись и к тому же значительно расширил ее. Нет сомнений в том, что Тьюринг попросту позаимствовал некоторые элементарнейшие материалы из First Draft of a Report on the EDVAC. Например, его схема сумматора (рис. 10 из Proposed Electronic Calculator) фактически аналогична рисунку 3 фон Неймана:

qs4ypqyossohnihb1yr0ttsw2w4.png

В 1946 году один газетный репортаж сообщил, что Тьюринг «выражает признательность американцам за выполнение всей черновой работы над ACE».

Однако логические схемы Тьюринга не только подробно описывают структуру логического управления и арифметическую часть вычислителя, но и выходят далеко за рамки содержимого First Draft. Сходство между Proposed Electronic Calculator и First Draft относительно невелико на фоне впечатляющих различий в конструктивных решениях, которые приведены в этих работах. Более того, незначительное влияние фон Неймана на Proposed Electronic Calculator не должно служить отвлекающим фактором в понимании того, насколько предложенная в 1936 году универсальная машина Тьюринга сама по себе оказала фундаментальное влияние на фон Неймана.

g19sbskh4dgibad375zosp5dx6y.jpeg
Кайт Шарплесс и EDVAC (Philadelphia Evening Bulletin, 3 марта 1947 года)

6. Влияние Тьюринга на Джона фон Неймана, одного из создателей EDVAC


3ityoiiktyishg6crqjomzuiaqi.jpeg
Джон фон Нейман

В непрофильной литературе часто встречаются утверждения, что фон Нейман изобрел компьютер с хранимой в памяти программой, но он неоднократно подчеркивал, что принципиальная концепция такого устройства принадлежит Тьюрингу. Фон Нейман познакомился с идеями, изложенными в On Computable Numbers, в тот период, когда Тьюринг работал в Принстоне (1936–1938 годы), и вскоре заинтересовался концепцией универсальной вычислительной машины Тьюринга. Именно фон Нейман передал эту концепцию американским инженерам. Стэнли Френкель (физик из Лос-Аламоса, вместе с фон Нейманом и другими специалистами отвечавший за механизацию крупномасштабных расчетов, связанных с созданием атомной и водородной бомбы) записал мнение фон Неймана о важности On Computable Numbers:

Мне известно, что примерно в 1943 или 1944 году фон Нейман прекрасно осознавал исключительную важность работы Тьюринга On Computable Numbers 1936 года, описывающей принципиальное устройство универсального компьютера, воплощением которого является каждый современный компьютер (возможно, не ENIAC, как первый законченный, но определенно все последующие). Фон Нейман показал мне эту статью, и по его настоянию я внимательно изучил ее. Многие считают фон Неймана «отцом компьютера» (в современном смысле этого выражения), но я уверен, что сам бы он никогда не совершил эту ошибку. По всей видимости, его вполне можно назвать «акушером», но передо мной и всеми остальными он твердо упирал на то, что принципиальная концепция принадлежит Тьюрингу. Я думаю, основная роль фон Неймана заключалась в том, чтобы донести ее до мира и заниматься техническими разработками в Школе Мура и в других местах.

В 1944 году фон Нейман присоединился к группе Эккерта-Мокли, работавшей над созданием ENIAC в Электротехнической школе Мура при Пенсильванском университете. (В то время он участвовал в Манхэттенском проекте в Лос-Аламосе, где множество служащих, вооруженных настольными вычислительными машинами, выполняли утомительные масштабные расчеты, которые требовались физикам.) ENIAC, который строился с 1943 года, не был, как упоминалось выше, компьютером с хранимой в памяти программой — всё его «программирование» сводилось к переподключению кабелей и переустановке переключателей. Более того, ENIAC был далеко не универсальным, так как разрабатывался с прицелом лишь на одну очень специфическую задачу — расчет траекторий артиллерийских снарядов.

Фон Нейман применил свои знания о содержащихся в работе On Computable Numbers идеях на практике в Школе Мура. Благодаря работе Тьюринга, описывающей абстрактно-логические модели, фон Нейман знал, что с помощью закодированных инструкций, хранящихся в памяти, единая машина фиксированной структуры в принципе способна выполнить любую задачу, для которой можно составить программу. Когда занимавшийся разработкой ENIAC инженер Преспер Эккерт выдвинул предлож

© Habrahabr.ru