Игра в имитацию — страница 71 из 109

ежели разумная аргументация. В скором времени Алан уже открыто грубил Уомерсли в офисе, язвительно вопрошая «Чего хотим?» и, поворачиваясь спиной, если его «босс» решался вмешаться в какое-нибудь обсуждение. Впоследствии сотрудники отдела даже заключили пари о том, кто же из них выйдет из кабинета Уомерсли с «каким-нибудь уравнением, пусть даже с самым простейшим». Но потом от пари отказались и признали поражение, «за ограниченностью доступа», как выразился Алан. В свою очередь, Уомерсли водил посетителей по Кромер-хаусу, показывая на кабинет Алана издалека с наигранным трепетом и отзываясь о нем, как о каком-то редком зоологическом экземпляре: «Ох, уж этот Тьюринг, нам не стоит нарушать его покой».

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

Первой задачей Алана было написать «Предложения по созданию в Математическом отделе АВМ» с подробным изложением архитектуры электронной универсальной машины и описанием ее действия. Удивительно, но в докладе, представленном Аланом, не содержалось упоминаний о «Вычислимых числах». Вместо этого, доклад перекликался с Предварительным докладом о машине ЭДВАК и был рассчитан на чтение в увязке с ним. Впрочем, проект АВМ был вполне самостоятельным, и его истоки восходили не к ЭДВАК, а к универсальной машине Тьюринга. Это наглядно демонстрируют некоторые фрагментарные заметки и комментарии, датируемые этим периодом:

…В статье «О вычислимых числах» допускалась организация хранения всех данных по линейному закону; в таком случае время доступности информации прямо пропорционально объему сохраненных данных, будучи по сути цифровым интервалом, умноженным на число хранимых знаков. Это основная причина, по которой форма организации в «Вычислимых числах» не могла быть принята и реализована на практике в настоящей машине.

Намек содержался и в первом параграфе упомянутого доклада Алана, где примерами сопровождалось обещание того, что новые проблемы сведутся «буквально к канцелярской работе», и говорилось:

Кому-то может показаться удивительным, что такую машину можно создать. Разве возможно, чтобы машина выполняла так много разных операций? Ответ в том, что нам следует воспринимать машину, как совершающую совершенно простую операцию, а именно — выполняющую команды, поступающие ей в такой форме, в которой она будет способна их понять.

Но существенно акцентировал эту идею Алан в разговоре, состоявшемся годом позже, в феврале 1947 г., объяснив происхождение АВМ, как он сам его воспринимал:

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

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

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

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

Тьюринг продолжал давать краткое описание «создания мозга»:

Давайте теперь вернемся к аналогии теоретических вычислительных машин с бесконечной лентой. Можно создать одну особую машину такого типа, которая бы делала все. На самом деле, она бы работала, как модель любой другой машины. Такую особую машину можно назвать универсальной машиной; она работает довольно простым образом. Определившись, какую машину мы хотели бы имитировать, мы наносим информацию с ее описанием в виде отверстий на ленту универсальной машины. Эта описание объясняет, что машине следует делать при том или ином сценарии настройки. Универсальной машине останется только «сверяться» с этим описанием, чтобы узнать, что ей следует делать на каждом этапе. Таким образом, сложность имитируемой машины будет сосредоточена на ленте, а не в конструкции самой универсальной машины.

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

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

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

По схожим причинам в его докладе не делалось особого акцента на том, что АВМ должна была использовать двоичную систему счисления. Алан констатировал преимущество двоичного представления информации на ленте (перфокарте), когда переключатели могли представлять 1 и 0 режимами «включено» и «выключено». И на этом все, за исключением разве лаконичного заявления о том, что для ввода/вывода чисел в машине использовалась обычная десятичная запись, а процесс их преобразования должен быть представлен в «практически невидимой форме». В беседе, состоявшейся в 1947 г., Алан конкретизировал этот кратчайший из всех возможных комментариев. Суть была в том, что универсальность машины позволяла конвертировать числа в самой машине в двоичный формат, если это отвечало технологической концепции. Использовать двоичные числа в кассовом аппарате было бы некорректно и нецелесообразно, так как преобразование чисел для ввода/вывода было более проблемным и хлопотным, чем оно того стоило.

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