Алан Тьюринг
Алан Тьюринг
Идея создания машины с программой, хранимой в памяти, начала находить своих энтузиастов, особенно в Англии. Среди тех, кто получил экземпляр отчета о проекте «Эдвак», был сотрудник британской Национальной физической лаборатории Дж. Р. Уомерзли. Его пригласили в США для знакомства с работами над машинами «Эниак» и гарвардским «Марком-1». Вернувшись в Англию, Уомерзли привез с собой экземпляр отчета о разработке машины «Эдвак» и страстное желание начать аналогичные разработки в своей стране.

Для работы над проектом он в первую очередь пригласил Алана Тьюринга Alan Turing, во время войны принимавшего участие в создании сверхсекретной английской декодирующей машины «Колосс».

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

Машина Тьюринга была пригодна для решения любой разрешимой математической или логической задачи. Цель Алана Тьюринга заключалась не в изобретении компьютера, а в описании задач, не имеющих решения. Вместе с тем в гипотетической машине Тьюринга были предвосхищены некоторые черты современных компьютеров. Например, бесконечную ленту можно рассматривать как своеобразную универсальную внутреннюю память.

Благодаря Алану Тьюрингу машина «Колосс» великолепно справилась с расшифровкой донесений, создаваемых немецкой шифровальной машиной «Загадка». Хотя машина «Колосс» была спроектирована как логический компьютер специального назначения, по существу она была достаточна универсальна, чтобы решать целый ряд разнообразных задач. И поскольку это была первая машина, в которой применялось большое количество электронных ламп (она вступила в эксплуатацию на два года раньше машины «Эниак»), она также стала базой для подготовки научных кадров в области электронных вычислительных машин.

Наличие квалифицированных специалистов позволило Великобритании быстро включиться в гонку, призом в которой было создание компьютера с программой, хранимой в памяти.

По иронии судьбы приблизительно в то же время, когда осуществлялся проект «Колосс», Конрад Цузе обратился к правительству фашистской Германии с просьбой о выделении средств на создание аналогичного устройства для дешифровки английских секретных кодов. Характерно, что в этом устройстве также предполагалось использовать электронные лампы.

Однако ходатайство Цузе было отклонено с мотивировкой, что война закончится прежде, чем такая машина заработает.

Выполняя задание Уомерзли (изучить проект фон Неймана и построить компьютер, подобный машине «Эдвак», Алан Тьюринг разработал план создания машины ACE (Automatic Computing Engine - автоматическое вычислительное устройство). Пользуясь буквенно-цифровым кодом, он даже написал для нее несколько простых программ.

Однако проект ACE натолкнулся на целую цепь бюрократических препон, что расстроило планы Алана Тьюринга и вынудило его отстраниться от работы задолго до того, как в 1950 г. она завершилась созданием уменьшенного опытного варианта машины.

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

Еще до прихода Алана Тьюринга группа Ньюмена построила небольшую действующую модель полностью электронного компьютера с хранимой в памяти программой, который, как и гарвардская машина, получил название «Марк-1».

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

Включаясь и выключаясь по команде компьютера, пучок генерировал точки, которые соответствовали нулям и единицам двоичного кода. Производя регенерацию заряда 30 раз в секунду, можно было удерживать записанную информацию. Для обнаружения (или считывания) заряженных точек использовалась система специальных электродов, расположенных снаружи трубки в непосредственной близости от ее поверхности. Кроме того, поскольку заряженные точки мог видеть и человек, одна трубка устанавливалась отдельно, что позволяло оператору визуально наблюдать содержимое любой другой трубки.

Система заработала не сразу. После запуска машины «точки на экране трубки заметались в каком-то сумасшедшем танце, - вспоминал главный инженер Ф. К. Уильямс. - В первых испытаниях это был поистине танец смерти, который не приводил ни к какому полезному результату, и, что еще хуже, не давал ни малейшего намека на то, где искать неисправность.

Однако 21 июня 1948 г. манчестерский «Марк-1» реализовал первую в мире программу, хранимую в памяти машины, - поиск наибольшего сомножителя заданного числа. Как с восторгом заявил Уильямс, «в нужном месте ярко светился ожидаемый результат).

Пока манчестерский «Марк-1» делал первые блестящие успехи на непроторенном пути, другая группа англичан из Кембриджского университета завершала работу над машиной, которой суждено было продемонстрировать истинные возможности компьютеров с хранимой в памяти программой.

Машина «Эдсак» (EDSAC, от Electronic Delay Storage Automatic Calculator - электронный автоматический вычислитель с памятью на линиях задержки) была в сущности прямой копией машины «Эдвак».

Руководитель университетской вычислительной лаборатории Морис Уилкс, находясь летом 1946 г. в США, прослушал там курс лекций, посвященный машинам с программами, хранимыми в памяти. Лекции читали Мочли, Экерт и другие сотрудники Пенсильванского университета.

Как и в проекте Мочли и Экерта, внутренняя память английской машины строилась на ртутных линиях задержки. Они действовали медленнее и были дороже, чем ЭЛТ, но позволяли хранить больший объем информации и, кроме того, отличались более высокой надежностью. Компьютер «Эдсак», созданный на два года раньше, чем злополучный «Эдвак», вступил в строй спустя год после манчестерского «Марка-1», в июне 1949 г.
 

 
Машина Тьюринга
 
Состояние машины
Если головка читает пробел
Если головка читает X
СОСТОЯНИЕ 1
СТОП
Стереть; перейти в состояние 2; сдвинуться влево
СОСТОЯНИЕ 2Записать; перейти в состояние 3; сдвинуться влево
Остаться в состоянии 2 сдвинуться влево
СОСТОЯНИЕ 3Записать; перейти в состояние 4; сдвинуться вправо
Остаться в состоянии 3; сдвинуться влево
СОСТОЯНИЕ 4Перейти в состояние 5; сдвинуться вправо
Остаться в состоянии 4; сдвинуться вправо
СОСТОЯНИЕ 5СТОП
Стереть; перейти в состояние 2; сдвинуться влево
 
 
В 1936 г., будучи студентом Кембриджского университета, английский математик Алан Тьюринг написал статью «О вычислимых числах», в которой рассмотрел гипотетическое устройство (впоследствии получившее название «машина Тьюринга») - прообраз программируемого компьютера.

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

Команды машины Тьюринга  описывают пять состояний; в каждом из них от машины требуется выполнить определенные действия. Свою работу машина Тьюринга начинает в состоянии один.
 
В приведенном здесь примере машина Тьюринга настроена на удвоение целых положительных чисел. Ее команды описывают пять состояний; в каждом из них от машины требуется выполнить определенные действия.Свою работу машина Тьюринга начинает в состоянии 1, в этот момент считывающая головка установлена в начало записанного числа. Машина завершит работу после выполнения 16 шагов - в этот момент на ленте будет записано удвоенное количество символов.
 

 
См. также:
 
Язык Тьюринга - для Манчестерского "Марк-1"