С ранней юности Блез Паскаль страдал сильными головными болями, и однажды он признался, что только занятия математикой отвлекали его от этих мучений. Одно только это признание изобличает в Блезе необыкновенного человека, ибо для нормальных смертных именно математика часто служит источником головной боли. Но это — как, я надеюсь, подтвердят читательницы и читатели этой книги — всего лишь злонамеренно распространяемая клевета.
Напротив, скучные расчеты едва ли могут избавить кого-нибудь, даже Блеза Паскаля, от головной боли или, тем более, привести в восхищение. Слишком уж тягостны сухие расчеты. Сын задался целью освободить отца от тяжкой повинности, каковую тот исполнял изо дня в день, и нагрузить расчетами машину. Свой план Блез воплотил в жизнь в девятнадцатилетнем возрасте: он изобрел первую в мире счетную машину и сам ее изготовил. Машину он скромно назвал «паскалиной».
«Паскалина» не была устройством для счета. Таких было великое множество уже в античные времена. Знаменитый абак — слово происходит от греческого слова ἄβαξ (доска) — самое известное из них. Абак состоял из рамки с шариками, которые римляне называли calculi (маленькие камешки), нанизанными на штыри. Эти шарики перемещали по желобкам, канавкам и бороздкам. Другим примером счетного устройства является счетная линейка, которая действительно представляет собой градуированную линейку, на которой после соответствующего обучения можно производить достаточно сложные операции — умножение, деление, возведение в степень и извлечение корней. Надо упомянуть также логарифмическую линейку Непера, названную в честь Джона Непера. Эта линейка сильно облегчает действия умножения и деления. Но все это — устройства, приборы, аппараты, а не машины. Работа с аппаратом требует умелого обращения специально обученного человека. При работе с машиной персонал не должен понимать, что делает машина. Она считает как будто «сама», буквально «автоматически». Слово это происходит от греческого слова αὐτόματον — «автоматон», обозначающего самодвижущийся предмет. Например, в Илиаде так назывались самостоятельно открывавшиеся двери на Олимпе.
Фактически «паскалина» является счетным автоматом. При взгляде на эту машину мы видим латунный кожух размером с кирпич, на плоской верхней поверхности которого находятся пять (на более поздних версиях машины их было больше) прорезей. В каждой прорези видна цифра от 0 до 9, а вместе эти цифры составляют пятизначное число{22}. Под каждой прорезью располагается колесико с десятью спицами. Вокруг каждого колесика выгравированы цифры от 0 до 9 таким образом, что спицы колесика направлены в промежутки между следующими друг за другом цифрами. Колесико можно вращать по часовой стрелке с помощью штифта, вставленного в какой-либо из промежутков. Маленькое стопорное приспособление, вмонтированное в поверхность устройства, позволяет, как в старинных телефонах с наборным диском, ограничивать поворот колесика.
Если во всех прорезях видна цифра 0, то «паскалина» показывает число 00000 и находится в исходном положении. Теперь можно выполнить действие сложения, например 16 + 45. Сначала вводят число 16. Штифт вставляют в предпоследнее слева колесико в промежуток перед 1 и поворачивают колесико до упора. Появляется число 00010. После этого штифт вставляют в последнее колесико в промежуток перед цифрой 6 и поворачивают колесико до упора. В прорезях появляется число 00016. Точно так же вводят число 45. Вставляют штифт в предпоследнее колесико слева в промежуток перед цифрой 4 и поворачивают колесико до упора. В прорезях получают число 00056. Потом штифт вставляют в последнее колесико в промежуток перед цифрой 5 и поворачивают колесико до упора. В процессе поворота видно, как меняются числа в прорезях — 00056, 00057, 00058, 00059. Потом, словно по мановению волшебной палочки, появляется число 00060 и, наконец, нужный результат — 00061.
Внутренний механизм «паскалины», преобразовывавший движение колесиков в соответствующее вращение валиков, достаточно прост. На валик нанесены цифры 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Цифра, находящаяся в данный момент наверху, видна в соответствующую прорезь. Вращение колесика передается на валик и тоже приводит его во вращение. При этом мы видим, как в прорези сменяются цифры. Пока все просто и понятно. Однако Паскалю в своей машине удалось осуществить одну вещь, которую называют механическим переносом. С помощью искусного рычажного механизма в тот момент, когда на колесике цифра 9 сменяется цифрой 0, соседний слева валик автоматически проворачивается на одну единицу. Таким образом, гвоздем машины Паскаля является то, что при прибавлении единицы происходит переход от 00009 к 00010, от 00099 к 00100, от 00999 к 01000, от 09999 к 10000 и от 99999 к 00000, так как за неимением шестого разряда в числе 100 000 отображаются только нули{23}.
Два обстоятельства помешали изобретению Паскаля завоевать коммерческий успех.
Первое, и самое важное, препятствие заключалось в социальной ситуации в эпоху Паскаля. Его машина была просто слишком дорогой. Все ведомства вполне обходились услугами подневольных счетоводов, которые выполняли эту работу за смехотворную плату. Только после того, как люди стали получать более справедливую плату за свой труд, применение счетных машин стало себя окупать. Именно поэтому на своем изобретении разбогател не Паскаль в XVII в., а лишь в XX в. основатель компании IBM Томас Дж. Уотсон, именем которого была названа машина, одержавшая блистательную победу в шоу «Jeopardy!».
Еще одним, тоже серьезным, но в принципе устранимым препятствием, была ненадежность машины. Иногда она допускала ошибки. В важных расчетах результаты надо было проверять, а это требовало времени. Отец Блеза настолько хорошо поднаторел в ручных расчетах, что использование машины отняло бы у него больше времени, чем расчеты с помощью карандаша и бумаги. Но начало было положено.
За двадцать лет до изобретения и изготовления «паскалины» немецкий астроном Вильгельм Шиккард набросал эскиз похожего счетного механизма. О воплощении в реальный механизм грубых чертежей ходят лишь слухи: говорят, что одну машину сделали для Иоганна Кеплера, но она погибла во время пожара, и от нее сохранились лишь неумелые рисунки. Собственно, если даже Шиккарду и удалось изготовить шестереночный механизм, то он из-за технического несовершенства ломался при переходе к числам следующего разряда, например при переходе от 09999 к 10000. Как бы то ни было, честь изобретения и изготовления первой счетной машины принадлежит, без сомнения, Блезу Паскалю. Эта идея оказалась не только гениальной, но и плодотворной, так как подобные автоматы до сих пор выпускаются большими сериями.
Но счетной машине Паскаля пришлось пройти долгий путь в несколько столетий, чтобы стать наконец числовой машиной.
Лейбницевы числа и программа Лавлейс
Счетная машина, которая функционировала абсолютно так же, как машина, созданная Паскалем, была спроектирована почти тридцать лет спустя немецким ученым-универсалом Готфридом Вильгельмом Лейбницем. В отличие от «паскалин», многие из которых сохранились до наших дней, оригинальная модель, созданная Лейбницем, до нашего времени не дошла, но сохранились копии, которые доказывают, что машина была работоспособна.
Однако вклад Лейбница в создание вычислительных машин не ограничивается изобретением копии машины Паскаля. Вклад Лейбница намного более весом, он заключается в разработке новой теоретической концепции счета: в машине Паскаля механический перенос осуществляется на соседнем левом валике, когда на правом от него валике происходит переход от цифры 9 к цифре 0. Переход же от 0 к 1 в принципе ничем не отличается от перехода от 1 к 2 или от 2 к 3. И в дальнейшем переходы происходят столь же монотонно, вплоть до перехода от 8 к 9. Только после этого при переходе от 9 к 0 снова включается механизм переноса.
Собственно, как подумалось Лейбницу, нельзя ли сократить этот механизм на два процесса: первый процесс — переход от цифры ноль, который мы теперь будем для краткости обозначать 0, к цифре единица, которую мы теперь обозначим символом 1: при перемещении движется только тот валик, который показывает смещение с 0 на 1. Второй процесс — это переход от цифры 1 назад, к цифре 0, при осуществлении которого левый валик будет двигаться вместе с правым. Либо, в ходе этого перемещения, валик перемещается из положения 0 в положение 1 и больше ничего не происходит, либо он перемещается из положения 1 в положение 0 и при этом происходит дальнейшее перемещение следующего левого валика. Следуя мысли Лейбница, можно утверждать, что на каждом отдельном валике нанесены не десять цифр, а всего две — 0 и 1; другие цифры этой концепции неведомы. С тех пор изобретенные Лейбницем цифры 1 и 0 называют двоичными, а основанная на них система счисления тоже называется двоичной, или бинарной. За это упрощение, однако, приходится недешево платить: машина, работающая на основе двоичного счисления, должна иметь огромное число сопряженных друг с другом валиков, потому что с помощью пяти валиков можно обозначать только очень маленькие числа. В машине с пятью валиками числа от 0 до 8 записываются так: 00000, 00001, 00010, 00011, 00100, 00101, 00110, 00111, 01000. Эти действия можно продолжить дальше, но уже на числе 31, которое в Лейбницевой системе счисления запишется как 11111, мы будем вынуждены остановиться. При попытке отобразить следующее число мы получим снова 00000, так как валика для шестой единицы в «паскалине» нет.
Не чуждый мистического мышления, глубоко верующий Лейбниц видел в двоичной цифре 1 символ Бога, а в двоичной цифре 0 — символ пустоты, ничто. Людям, убежденным в истинности христианского вероучения, двоичная запись числа семь — 111 — указывала, что триединый Бог создал мир за семь дней…
Однако Лейбниц, изобретая двоичное счисление, имел в виду еще одно толкование: