В 1936 году Тьюринг разработал исчерпывающую теорию универсальных классических компьютеров. Но он не собирался строить такой компьютер, а только хотел применять теорию абстрактно для изучения природы математических доказательств. И когда через несколько лет были сконструированы первые универсальные компьютеры, то опять в этом не было никакого особого намерения реализовать универсальность. Их построили в Британии и США во время Второй мировой войны для специфичных военных целей. Британские компьютеры под названием Colossus («Колосс»; в их создании принимал участие Тьюринг) использовались для взлома шифров; американский компьютер ENIAC был предназначен для решения уравнений, необходимых для наведения больших орудий. Оба были построены на электронных вакуумных лампах, которые работали как реле, но почти в сто раз быстрее. В то же самое время в Германии инженер Конрад Цузе собирал на релейных схемах программируемый калькулятор — так, как это должен был бы сделать Бэббидж. Во всех трёх применялись технологические решения, необходимые для универсального компьютера, но ни одно из них не было вполне универсальным по своей конфигурации. Машины Colossus применялись только для дешифрации, и после войны большая часть из них была разобрана. Машина Цузе была уничтожена в ходе бомбардировок Германии союзниками. А вот ENIAC’у судьба позволила совершить скачок к универсальности: после войны ему нашли массу применений, для которых он никогда не предназначался, таких как прогнозирование погоды и проект создания водородной бомбы.

В истории развития электронных технологий после Второй мировой войны преобладала миниатюризация, и в каждом новом устройстве реализовывались всё более и более микроскопические переключатели. Около 1970 года эти усовершенствования вызвали скачок к универсальности, когда несколько компаний независимо друг от друга создали микропроцессор, универсальный классический компьютер на одной кремниевой микросхеме. С этого момента разработчики любого устройства для обработки информации могли взять микропроцессор и настраивать его — программировать — под определённые задачи, которые устройство должно было выполнять. Сегодня стиральная машина, стоящая у вас дома, наверняка управляется компьютером, который можно было бы запрограммировать для решения задач астрофизики или обработки текстов, если бы у него были подходящие устройства ввода-вывода и достаточный объём памяти для хранения необходимых данных.

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

Другая их общая черта — то, что все они цифровые: они работают с информацией в форме дискретных значений физических величин: к примеру, электронный переключатель может быть включён или выключен, а зубец шестерёнки находиться в одном из десяти положений. Широко распространённые когда-то альтернативные, «аналоговые», компьютеры, такие как логарифмическая линейка, в которых информация представляется в виде непрерывных физических переменных, сегодня практически не используются[36]. Дело в том, что современный цифровой компьютер можно запрограммировать так, что он сымитирует любое такое устройство и будет работать лучше практически во всех приложениях. В результате скачка к универсальности в цифровых вычислениях аналоговые компьютеры были забыты. И это было неизбежно, ведь универсального аналогового компьютера не существует.

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

Перейти на страницу:

Похожие книги