Kitabı oku: «Пиксель. История одной точки», sayfa 10

Yazı tipi:

Не игрушка

Чтобы постичь великую идею Тьюринга, давайте взглянем на карточку из плотного картона, которая изображена на рисунке 3.2. У нее срезан один угол и сделано круглое отверстие в центре. Как на лицевой (с копирайтом), так и на оборотной стороне есть надписи. Кажущаяся простота этой карточки обманчива – не дайте себя одурачить: она обладает невероятной мощью.

Теперь представьте длинную бумажную ленту, расположенную за карточкой слева направо. Лента размечена на квадраты. Один из них вы можете видеть через отверстие в карточке. Квадраты в основном пустые, но на некоторых изображены символы. Я решил использовать цифры 1, 2, 3, 4 и 5, но их можно заменить и, например, на #,! $, % и &. Это просто некие условные символы, не обозначающие ничего конкретного. В частности, нужно понимать, что за цифрами не скрываются настоящие числа. Мы называем их символами, но они ничего не символизируют. Если вы замените 1 на #, 2 на! и так далее, ничего не изменится – кроме начертания меток на квадратах.

На рисунке 3.3 в верхнем ряду (шаг 1) показана лента, на которой всего четыре метки: 5155. Остальные квадраты пусты. Карта изображена слегка прозрачной, чтобы сквозь нее была видна лента. Колонка справа со странными изображениями – цифрами в кружках, двоеточиями, стрелками – содержит шесть правил, определяющих работу устройства. Каждому символу на ленте соответствует одно правило. Перевернутый список слева от отверстия содержит еще шесть правил.

Устройство работает следующим образом. В правой колонке найдите правило для символа, который видите в отверстии. (Пока что не обращайте внимания на перевернутые правила слева.) Для шага 1 это правило вверху справа – оно относится к пустой ячейке. После пробела стоит двоеточие, за которым следует цифра 5. Правило означает, что нужно заменить пробел цифрой 5 – написать 5 в пустой ячейке. После 5 идет стрелка влево. Нужно переместить карту на одну клетку в указанном направлении. Маленький символ еще правее обозначает саму карточку. Соответственно, вы должны повернуть карточку так, чтобы она соответствовала положению символа. В нашем случае нужно повернуть карту на пол-оборота по часовой стрелке, чтобы обрезанный угол оказался вверху слева и получилась конфигурация, изображенная во втором ряду (шаг 2).

Правило, которое применяется на шаге 2, для символа 5 в отверстии, находится внизу справа. Оно указывает заменить 5 на 2 – стереть 5, а затем написать 2, – после чего сдвинуть карту на одну клетку вправо. Маленького символа карты здесь нет, поэтому ее положение не меняем. В результате получим конфигурацию, изображенную на третьей строке (шаг 3).

Если проделать два следующих шага, получится конфигурация, изображенная на четвертой строке – шаг 5 (шаг 4 не показан). После них карта сохраняет ту же ориентацию (срезанный угол сверху слева). В этом случае применяется третье сверху правило в правой колонке: замените 2 на 3, переместите карту влево на один квадрат и поверните ее. Срезанный угол должен оказаться снизу слева. Нам откроются другая сторона карты (шаг 6) и еще два списка правил, отличающихся от тех, которые мы видели ранее.

Рис. 3.2


Рис. 3.3


Продолжайте в том же духе. Если доведете дело до конца, то обнаружите, что карта окажется в своей первоначальной ориентации, а в отверстии будет ячейка с символом 4. В применяемом при этом правиле после двоеточия ничего не указано, а значит, больше ничего делать не надо. Машина останавливается.

Всё, что мы проделали, – вовсе не пустая забава. Хотите верьте, хотите нет, но в итоге она привела к появлению Цифрового Света. Устройство на карточке – это машина Тьюринга. Одна из его игрушек. Аппаратная реализация его самого известного изобретения.

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

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

Но она не передавала всю утомительность их труда. Утомление возникает – как вы уже догадались, если следовали приведенным выше инструкциям, – из-за непрерывно повторяющихся примитивных шагов, постоянного беспокойства из-за возможности ошибиться и усилий по сохранению в памяти текущего положения – скажем, во время перерыва на чай. Не отражала модель и того, насколько скучна подобная работа. Вспомните, как говорила Ханна у Стоппарда: «Ты хочешь сказать, что проблема только в этом? В скуке? Валентайн! Проблема только в этом?» Машина не устает и не скучает. С такими проблемами сталкивается лишь человек. Тьюринг создал абстрактную модель значимых действий «вычислителя». Он абстрагировался от утомительности и от скуки как от несущественных категорий. Он использовал такие понятия, как различные состояния ума, пошаговые инструкции, написание и стирание символов и бесконечный запас бумаги для записей.

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

Тьюринг определил, что любая из его машин должна состоять только из четырех элементов: одномерная лента, разделенная на ячейки, ограниченный набор символов для нее, ленточный сканер с ограниченным числом состояний и «таблица инструкций», сообщающая, что делать с каждой комбинацией состояния сканера и символа на ленте. В нашем случает сканирующее устройство – это картонная карточка с отверстием, шесть символов – это цифры от 1 до 5 и пробел, а четыре состояния – это четыре ориентации карты. Четыре набора правил образуют таблицу инструкций. И еще кое-что. Лента должна быть необходимой длины в любом направлении. При необходимости всегда должна найтись еще одна ячейка. Бумаги всегда должно хватать. Возможно, теперь вы понимаете, почему Ньюман поначалу не поверил, что такое простое устройство – на первый взгляд, примитивная игрушка – позволяет получить такой серьезный математический результат. Из этой простой «машинной» концепции произошли все машинные вычисления.

В рассмотренном нами устройстве отражен принцип работы современного компьютера. Сама карточка – это ЦП (центральный процессор), а лента – это память. Но современный компьютер выполнит любое вычисление, если просто изменить программу. Конечно, нашему примитивному устройству из картонной карточки никакие вычисления не под силу, не так ли? А вот и нет! Оно с ними справится! Студия Pixar даже смогла бы сделать с его помощью все необходимые вычисления для «Истории игрушек»! Конечно, пользоваться нашим устройством они бы не стали – это настолько утомительно и медленно, что заняло бы все время существования Вселенной, но скорость – это отдельный вопрос, который мы рассмотрим в следующей главе. Отметим, что наше устройство – это не обычная машина Тьюринга. Машина из картонной карточки – это универсальная машина Тьюринга.

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

Другой систематический процесс – переворачивание буквенной строки. Например, если задана строка abcdefg, машина сначала меняет местами крайнюю пару букв, затем следующую и так далее. Процесс продолжается до тех пор, пока не закончатся пары для обмена или не останется только одна буква. В итоге у нас получится gfedcba. Следовательно, существует машина Тьюринга, которая выполняет эту операцию для любой произвольной строки на своей ленте, и ничего больше.

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

Никогда не пытайтесь объяснить устройство компьютера невеждам. Легче девственнице объяснить, что такое секс.

– Роберт А. Хайнлайн. «Луна – суровая хозяйка»

Иди к черту, Хайнлайн! Фокус Тьюринга, позволяющий сделать одну из его машин универсальной, гениален. Машина Тьюринга – это простая вещь, которая определяется набором правил. У нашей машины из картонной карточки, например, есть 24 правила, по 6 для каждого положения. Поэтому Тьюринг предположил, что существует возможность спроектировать машину Тьюринга, которая возьмет описание любой машины Тьюринга, а также входные данные для нее и смоделирует все то, что эта машина будет делать лентой. Он считал это возможным, потому что такое моделирование представляет собой систематический процесс, а машина Тьюринга изобретена для демонстрации исполнения именно того, что мы подразумеваем под систематическим процессом. Машина Тьюринга, которая имитирует любую другую, – это универсальная машина Тьюринга, и Тьюринг показал, как ее сконструировать.

Буква A на рисунке 3.4 – любая простая машина Тьюринга, которая условно изображена как сканирующая головка, перемещающаяся влево и вправо по бесконечной ленте. В нашем примере это картонная карточка, а «сканирующая головка» – это отверстие в ней. Карточка будет нашим текущим примером произвольной машины Тьюринга A. Обозначим буквой U универсальную машину Тьюринга, которая может имитировать любую машину Тьюринга A при наличии одномерного описания правил работы A – набора команд – и описания данных на ленте A.

В нашем примере набор команд А – это всего 24 правила, которые определяют машину, сделанную из картонной карточки. Они перекодированы в форму, которую требуют правила машины U. Правила для машины A, записанные на картонной карточке, представлены в виде двух таблиц инструкций. Они написаны с двух сторон карточки, причем половина из них перевернута. Для U нужна одномерная версия этих правил на ленте, записанной набором символов, которые использует U. Вскоре мы покажем пример кодирования правил A.

Тьюринг заметил, что набор правил любой машины Тьюринга можно записать как одномерный ряд символов. В примере с карточкой можно перечислить все 24 ее правила в одной строке, если использовать односимвольные сокращения f(ront), b(ack), F и B для четырех положений карточки – лицевой, обратной, повернутой лицевой и повернутой обратной – и разделить правила на четыре группы, по шесть правил в каждой:

(шесть правил f) (шесть правил b) (шесть правил F) (шесть правил B)

Как может выглядеть эта перекодировка на самом деле, можно посмотреть в комментариях на сайте.

Первый фокус, проделанный Тьюрингом, – это запись линейного описания машины А на ленте U, по одному символу на каждую ячейку ленты. Представьте, что это записано на левой половине ленты.

Второй фокус Тьюринга – сделать линейное описание ленты А, содержащее все ее исходные данные, справа от описания машины А. Кодировка здесь предельно проста, данные просто переносятся ячейка в ячейку. Таким образом, описание и исходные данные нашей машины-карточки могут выглядеть следующим образом, если мы используем вертикальную черту для разделения двух наборов и 0 для кодирования пробела:


Рис. 3.4. Под данными для А мы подразумеваем некие символы, изначально записанные на ее ленте – например, для карточки из нашего примера исходными данными была запись 5155. Их также надо перекодировать в форму, требуемую для U. Ниже мы также приведем пример такого перекодирования. Иначе говоря, исходные данные на ленте универсальной машины Тьюринга U состоят как из правил A, так и из данных A в одномерной форме, как показано на рисунке.


(шесть правил f) (шесть правил b) (шесть правил F) (шесть правил B) | 000000051550000000

Теперь универсальная машина Тьюринга U «знает», что представляет собой произвольная машина Тьюринга A, потому что у нее есть полное описание поведения этой машины, выраженное ее собственными правилами. И универсальная машина знает, какую ленту изначально просматривала произвольная машина. U получила свои входные данные.

Универсальной машине теперь нужно «узнать» еще только две вещи, чтобы сымитировать произвольную машину А: какой символ машина А сканирует в данный момент и в каком положении она находится в данный момент. Третий фокус Тьюринга – это добавление в левой части ленты символа, указывающего текущее состояние, и еще одного символа в правой половине, указывающего, какая ячейка просматривается в данный момент. Четыре компонента информации о произвольной машине А – ее описание, начальные данные, начальное положение и отсканированный в начальной позиции символ – образуют начальные данные для универсальной машины. Вот представление входной ленты U для машины-карточки в перевернутом положении, с исходными данными 5155, первоначально стоящей в позиции сканирования пустой ячейки (0) справа, как на рисунке 3.3:

(шесть правил f) (шесть правил b) (шесть правил F) (шесть правил B) | 000000051550000000

Жирным 0 отмечен сканируемый в начальной позиции символ, а жирным b отмечено начальное положение карточки, то есть указано, какой набор правил использовать. Посмотрите в комментариях на сайте, как на самом деле может выглядеть лента для U.

Разработка такого набора правил для U, чтобы она могла имитировать произвольную машину A, закодированную описанным выше способом на ленте машины U, – долгий и муторный процесс. Суть в том, что U может «видеть» полное описание произвольной машины и полное описание данных для нее. Она может видеть текущее положение произвольной машины и считываемую ею в данный момент ячейку ленты данных. Это полное описание моделируемой машины – на данный момент. Аналогичным образом моделируется следующее положение произвольной машины, и Тьюринг в своей знаменитой статье 1936 года описал U, которая систематически преобразовывала отображение для одного момента в отображение для следующего момента. Таким образом, в процессе моделирования машины-карточки лента U на втором шаге выглядит так:

(шесть правил f) (шесть правил b) (шесть правил F) (шесть правил B) | 000000051555000000

Затем она сымитирует следующий шаг, затем еще один и так далее. Фактическое создание такой конструкции – трудоемкий процесс, но суть его проста. Если вы готовы лишиться девственности (по Хайнлайну), читайте комментарии на сайте, где подробно описан процесс моделирования.

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

Тьюринг изобрел программирование. Говоря современным языком, Тьюринг разместил в памяти универсальной машины программу произвольной машины, а также данные для нее – в левой и правой половинах ленты универсальной машины. Чтобы изменить то, какую произвольную машину моделирует универсальная машина и какие вычисления она выполняет, нужно изменить только программу – часть описания в левой половине ленты.

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

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


Рис. 3.5 Программа современного компьютера почти всегда разделена как минимум на две части. Одна из них называется операционной системой или ОС, например Windows, MacOS или Android. Она работает всегда. В этом случае желателен бесконечный цикл. Другая часть программы, которая изменяется в соответствии с вашими индивидуальными потребностями, называется приложением. Похожим образом в памяти хранятся данные, важные для операционной системы, отдельно от данных для приложения. Операционная система просто «занимается всякими делами», например загружает приложение в память в нужном месте и запускает его, обеспечивает ввод данных и управление с помощью мыши и следит за отключением питания. А приложение в современном компьютере – это произвольная машина Тьюринга A. И для каждого алгоритма или систематического процесса есть такая А. Эта идея лежит в основе компьютерного мира.


Сколько программ может выполнить компьютер? Сколько приложений он может запускать? Их настолько много, что вы их даже не сосчитаете. Это все равно что спросить, сколько музыкальных произведений может сыграть рояль. Компьютер – самый гибкий инструмент, когда-либо созданный человечеством. Это чудо Гибкости. Цифровой Свет – лишь один из миров, записанный на его бесконечной ленте.

Джонни фон Нейман

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

Янош Лайош Нейман родился 28 декабря 1903 года в Будапеште. Его отец, банкир Макс Нейман, в 1913 году получил от правительства Австро-Венгрии дворянский титул (предположительно, за финансовую помощь), что позволило ему добавить приставку «фон» к австрийской фамилии. Так что его сын стал известен в Америке как Джон фон Нейман. Он переехал туда навсегда в 1933 году и стал одним из первых преподавателей Принститута.

В Будапеште семья Неймана принадлежала к финансовой элите, поэтому и в новой стране он продолжал вести аристократический образ жизни. Он ездил исключительно на машинах марки «Кадиллак», но часто попадал в аварии, после которых приобретал новый автомобиль. Такое поведение немало говорит о его личности. Еще одной подсказкой может быть то, что он отзывался на имя Джонни. На этой знаменитой фотографии (рис. 3.6) Джонни вверху слева в деловом костюме и галстуке – его посведневный наряд – верхом на муле, который смотрит в противоположную сторону (можно сказать, задом наперед), замыкает кавалькаду, направляющуюся в Большой каньон. Он был жизнерадостным повесой и гостеприимным хозяином. Он обожал мартини, нелепые шляпы для вечеринок и непристойные лимерики.

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


Рис. 3.6


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

Фон Нейман не обделил вниманием и одну из знаменитых 23 проблем Гильберта, связанных с основами математики. Он попытался решить Вторую проблему Гильберта за несколько лет до того, как Тьюринг взялся за е-Проблему.

Во Второй проблеме Гильберта ставится вопрос, не противоречивы ли аксиомы арифметики – ее фундаментальные, даже очевидные истины. Гильберт считал важным показать, что по крайней мере простая арифметика поддерживается системой логики, которая не приводит к противоречиям. Это кажется разумным, но в 1931 году Курт Гёдель в Вене доказал, что система логики не может быть полной, если она достаточно надежна, чтобы поддерживать арифметику и при этом быть свободной от противоречий. Столь поразительный результат, известный как теорема Гёделя о неполноте, означает, что в логической системе существуют истины, которые в рамках этой системы не могут быть доказаны. Скажем иначе: цена последовательности требует, чтобы вы довольствовались тем, что не сможете систематически все доказать. Теорема Гёделя утверждает, что не может быть универсальной математической машины для получения любой математической истины. Тьюринг позднее, в 1936-м, пришел к обратному результату: универсальный компьютер для всего, что поддается вычислению, существует.

Теорема Гёделя имеет косвенное отношение к истории Цифрового Света, поскольку подтверждает дарование фон Неймана. В 1930 году он посетил лекцию, где Гёдель представлял революционные результаты своих изысканий еще до того, как опубликовал их. В способностях фон Неймана легко убедиться, узнав, что он почти сразу ухватил суть и лично предложил Гёделю более яркую формулировку. Предполагаю, что он здорово расстроился, узнав, что у Гёделя уже есть более сильное доказательство. Еще ярче особенности характера фон Неймана раскрывает тот факт, что после этого он бросил свои исследования, касавшиеся формальной логики. Похоже, если он понимал, что не будет лучшим в какой-то области – если не получится «перегёделить» Гёделя, так сказать, – он переключался на другую сферу деятельности, чтобы стать лидером в ней.

Фон Нейман подходил к вычислительным машинам иначе, чем Тьюринг, хотя разобрался в идее последнего сразу же после ее обнародования. Неймана больше интересовало их реальное воплощение с инженерной точки зрения. Участвуя в разработке термоядерной (ее еще называют водородной) бомбы, он познакомился со всеми американскими проектами по созданию в послевоенные 1940-е годы машин для больших объемов математических вычислений – непосредственных предшественников компьютеров. Он искал наилучший вариант машины для быстрого проведения сложных расчетов термоядерных реакций. В частности, в Филадельфии он обнаружил машину под названием ЭНИАК (ENIAC, Electronic Numerical Integrator and Computer, электронный числовой интегратор и вычислитель). Она работала на радиолампах и занимала целый зал. Изначально она задумывалась, чтобы заменить женщин-«вычислителей» с механическими арифмометрами для расчетов артиллерийских таблиц стрельбы во время войны, но оказалась готова к работе только в 1946 году. Она уже напоминала привычные нам компьютеры. ЭНИАК действительно использовали для расчетов в проекте разработки водородной бомбы. Однако недостатки этого «почти-компьютера» вдохновили фон Неймана и его коллег на разработку архитектуры более универсальной вычислительной машины – с хранимой в памяти программой, – которая в дальнейшем сильно повлияла на компьютеры, ныне используемые для Цифрового Света. Если Тьюринг придумал свою машину ради решения теоретических проблем в башне из слоновой кости, то фон Неймана к открытию привела упорная работа в вонючей лаборатории.

Как и Тьюринг, фон Нейман прожил блестящую, но короткую жизнь. Он умер от рака в возрасте 53 лет, в 1957 году, всего через три года после Тьюринга, поэтому он тоже не увидел Великую цифровую конвергенцию нового тысячелетия. Однако, в отличие от Тьюринга, правительство воздало ему по заслугам при жизни. Эйзенхауэр наградил его Президентской медалью свободы в 1956 году. Фон Нейман работал над атомной и водородной бомбами, над стратегическими межконтинентальными баллистическими ракетами. Он был таким ястребом, что никто и никогда не сомневался в его лояльности Соединенным Штатам. Давая показания перед комитетом Сената, он называл себя «яростным антикоммунистом».

По иронии судьбы, его сотрудник Клаус Фукс передал в СССР секретную информацию, над которой велась работа, – метод инициирования термоядерных взрывов.

Однажды в 1937 году фон Нейман, Макс Ньюман и Тьюринг – будущие лидеры британской и американской компьютерной гонки – оказались в Принстоне одновременно. В 1938 году фон Нейман попытался завербовать Тьюринга в Принститут. Как ни странно, тот отклонил заманчивое предложение. Представьте себе, что фон Нейман и Тьюринг работали бы вместе. И первый компьютер мог бы быть американским.

Однако Тьюринг и фон Нейман слишком различались характерами – из гика и повесы вряд ли бы получилась работоспособная команда. Фон Нейман, должно быть, считал, что станет в ней главным. Вероятно, Тьюринг, в свою очередь, считал так же. Однако неизвестно, как все обернулось бы, потому что Тьюринг, в соответствии со своим характером, настоял на своем. Он вернулся в Англию, где его почти сразу завербовали в Блетчли-Парк. Шел 1939 год, и Англия опасалась за свою безопасность.

Yaş sınırı:
18+
Litres'teki yayın tarihi:
28 temmuz 2023
Çeviri tarihi:
2023
Yazıldığı tarih:
2021
Hacim:
866 s. 178 illüstrasyon
ISBN:
978-5-6048295-0-9
Yayıncı:
Telif hakkı:
Individuum
İndirme biçimi:
epub, fb2, fb3, ios.epub, mobi, pdf, txt, zip

Bu kitabı okuyanlar şunları da okudu