Чарльз Бэббидж и его машины

(Январь 2002)

CharlesBabbage

Американским издательством Viking Press выпущена примечательная книга под названием “Разностная машина. Чарльз Бэббидж и создание первого компьютера” (“The Difference Engine: Charles Babbage and the Quest to Build the First Computer” by Doron Swade, Viking Press, 2001).

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

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

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

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

Во многом благодаря именно этой страсти, можно сказать, Бэббидж и вошел в историю как конструктор первого полноценного компьютера. Разного рода механические счетные машины были созданы еще в 17-18 веках, но эти устройства были весьма примитивны и ненадежны. А Бэббидж, как один из сооснователей Королевского астрономического общества, ощущал острую потребность в создании мощного механического вычислителя, способного автоматически выполнять длинные, крайне утомительные, но очень важные астрономические калькуляции.

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

Будучи еще весьма молодым человеком, в начале 1820-х годов Чарльз Бэббидж написал специальную работу, в которой показал, что полная автоматизация процесса создания математических таблиц гарантированно обеспечит точность данных, поскольку исключит все три этапа порождения ошибок. Фактически, вся остальная жизнь ученого была связана с воплощением этой заманчивой идеи в жизнь.

Первое вычислительное устройство, разработанное Бэббиджем, получило название “Разностная машина”, поскольку в калькуляциях опиралось на хорошо разработанный в вычислительной математике метод конечных разностей. Благодаря этому методу все сложно реализуемые в механике операции умножения и деления сводились к цепочкам простых сложений известных разностей чисел.

babbage_difference_eng-2

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

К 1834 году, когда “Разностная машина №1” еще не была достроена, ученый уже задумал принципиально новое устройство — “Аналитическую машину”, явившуюся, по сути дела, прообразом современных компьютеров. К 1840 году Бэббидж практически полностью завершил разработку “Аналитической машины”, и тогда же понял, что практически ее воплотить сразу не удастся из-за технологических проблем.

AnalyticalMachine_Babbage

А потому он начал проектировать “Разностную машину №2” — как бы промежуточную ступень между первым вычислителем, ориентированным на выполнение строго определенной задачи, и второй машиной, способной автоматически вычислять практически любые алгебраические функции.

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

bab-printer

Разработав чрезвычайно развитую конструкцию принтера, Бэббидж стал пионером идеи компьютерного ввода/вывода, поскольку его принтер и пачки перфокарт обеспечивали полностью автоматический ввод и вывод информации при работе вычислительного устройства.

Были сделаны и дальнейшие шаги, предвосхитившие конструкцию современных компьютеров. “Аналитическая машина” Бэббиджа могла хранить промежуточные результаты вычислений (набивая их на перфокарты), чтобы обработать их впоследствии, или использовать один и тот же промежуточный массив данных для нескольких разных калькуляций в зависимости от получаемых в процессе вычислений результатов.

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

Не имея под рукой реального вычислителя, в своих теоретических рассуждениях Бэббидж продвинулся настолько, что сумел глубоко заинтересовать и привлечь к программированию своей гипотетической машины дочь Джорджа Байрона – Августину Аду Кинг, графиню Лавлейс, – обладавшую бесспорным математическим дарованием и вошедшую в историю как “первый программист”.

adalovelace

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

Его крайне живой ум совершенно не был способен удержаться на месте и дождаться завершения очередного этапа. Едва предоставив мастерам чертежи изготовляемого узла, Бэббидж тут же начинал вносить в него поправки и добавления, непрерывно отыскивая пути для упрощения и улучшения работы устройства. Во многом именно из-за этой особенности практически все начинания Бэббиджа так и не были доведены до конца при его жизни.

Другая проблема — весьма ершистый и конфликтный характер. Вынужденный постоянно выбивать под проект деньги в правительстве, Бэббидж тут же мог выдавать такого рода фразы:

“Меня дважды спрашивали [члены парламента]: “А скажите, мистер Бэббидж, если заложить в машину неверные числа, на выходе она все равно выдаст правильный ответ?»… Я не в состоянии постичь, какую же кашу надо иметь в голове, чтобы она порождала подобного рода вопросы”…

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

Однако, вплоть до начала 1990-х годов общепринятое мнение было таково, что идеи Чарльза Бэббиджа слишком опережали технические возможности его времени, а потому спроектированные вычислители в принципе невозможно было построить в ту эпоху.

И лишь в 1991 году, к двухсотлетию ученого сотрудники лондонского Музея науки воссоздали по его чертежам 2,6-тонную “Разностную машину №2”, а в 2000 году — еще и 3,5-тонный принтер Бэббиджа.

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

CharlesBabbageportrait

The END