Лейбницевы числа и программа Лавлейс
Счетная машина, которая функционировала абсолютно так же, как машина, созданная Паскалем, была спроектирована почти тридцать лет спустя немецким ученым-универсалом Готфридом Вильгельмом Лейбницем. В отличие от «паскалин», многие из которых сохранились до наших дней, оригинальная модель, созданная Лейбницем, до нашего времени не дошла, но сохранились копии, которые доказывают, что машина была работоспособна.
Однако вклад Лейбница в создание вычислительных машин не ограничивается изобретением копии машины Паскаля. Вклад Лейбница намного более весом, он заключается в разработке новой теоретической концепции счета: в машине Паскаля механический перенос осуществляется на соседнем левом валике, когда на правом от него валике происходит переход от цифры 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 — указывала, что триединый Бог создал мир за семь дней…
Однако Лейбниц, изобретая двоичное счисление, имел в виду еще одно толкование: истинномувысказыванию можно приписать двоичную цифру 1, а ложному — двоичную цифру 0. Логики сегодня несколько высокопарно говорят, что каждое высказывание или каждое суждение обладает каким-либо двоичным числом как «мерой истинности». Вместе с тем уже Лейбниц понимал, что действия с двоичными числами являются не просто арифметическими, но и логическими операциями. Двоичное счисление есть отражение мышления. «Мышление — это расчет». Лейбниц был глубоко в этом убежден. Может быть, считал Лейбниц, эту мысль удастся использовать в юриспруденции: судья с помощью значений истинности «рассчитывает» правдивость утверждений обвиняемого, истца, свидетелей и на основании этих расчетов выносит честное и непредвзятое решение. Если довести эту мысль до логического конца, то можно будет заключить, что вместо судьи вынесение приговоров можно поручить числовой машине.
Все это можно найти у Лейбница только в виде туманных намеков; решить эту проблему должны были, по его мысли, инженеры будущего. Только в 1830 г. английский математик и философ Чарльз Бэббидж решил, что сможет создать такую универсальную числовую машину, которая позволила бы перейти от простых вычислений к логическим операциям. Для начала он задумал сделать так называемую разностную машину, которую можно было бы использовать в качестве вспомогательного средства в трудных, но необходимых расчетах, связанных с навигацией судов. Однако очень скоро он понял, что с помощью машин можно возделать куда более обширное поле числовых манипуляций. Все, что можно выполнить шаг за шагом согласно твердо установленной схеме, можно выполнить с помощью машины, механически. Воодушевившись этой идеей, Бэббидж задался целью строительства «analytical engine», аналитической машины. Эта машина должна была приводиться в действие передовым для того времени паровым двигателем. Однако при жизни Бэббиджа такая машина так и не была построена. Так же как Лейбниц, Бэббидж был просто перегружен самыми разнообразными проектами: с жаром принимаясь за какой-либо очередной проект, он уже не мог уделять должного внимания другим. Бэббидж изучал политическую экономию, и его работы о раннем капитализме послужили ценным источником для Карла Маркса. Занимался Бэббидж и статистикой, заложив научные основы практического страхования жизни. Независимо от Германа фон Гельмгольца он изобрел «глазное зеркало», так называемый «офтальмоскоп», а также «скотоотбрасыватель» — путеочиститель, крепящийся к передней части локомотива. По различной ширине годовых колец деревьев он первым научился судить о климате прошлого. Бэббидж сумел расшифровать тексты, закодированные по методике ученого XVI в. Блеза де Виженера. И это лишь небольшая часть того, чем в своей жизни занимался Чарльз Бэббидж.
Воплощение в металле «analytical engine» провалилось не только из-за разносторонности интересов Бэббиджа, но в первую очередь из-за отсутствия в то время прецизионной механики, что не позволило изготовлять детали спроектированной машины с необходимой точностью. Эта попытка провалилась, кроме того, и потому, что Бэббидж слишком часто вносил изменения в конструкцию, и британский парламент решил прекратить финансирование этого проекта. Однако этот проект не удался главным образом из-за того, что вторая движущая сила, которая создала для аналитической машины первую «программу» — то есть первую инструкцию, которую машина могла выполнить автоматически, без вмешательства человека, — утратила интерес к проекту, точнее, была вынуждена его утратить. Речь идет о сотруднице Бэббиджа Огасте Аде Кинг, графине Лавлейс, урожденной Огасте Аде Байрон.
С самого рождения судьба не баловала эту женщину. Она была дочерью знаменитого романтического поэта лорда Байрона. Однако всего через несколько дней после рождения Ады отец отверг ее мать и потом до конца своих дней уклонялся от встреч со своей законной дочерью. Оскорбленная мать никогда не упоминала имени Байрона в присутствии дочери, никогда не вспоминала о нем и не показывала дочери его портреты. Роль заботливой матери эта женщина играла, правда, только для окружающих, а на деле передоверила воспитание Ады бабушке.
Так же как когда-то Паскаль, Ада Байрон с раннего детства страдала тяжелыми приступами головной боли, и так же, как Паскаль, получила домашнее образование, при этом обучавший ее математик Огастес де Морган заметил выдающийся талант Ады в этой науке. Так же как Паскаль, Ада, ставшая к тому времени женой Уильяма Кинга, будущего графа Лавлейса, попыталась с пользой реализовать свое математическое дарование: она хотела, в сотрудничестве с Бэббиджем, создать реально работающую аналитическую машину. Однако, в отличие от Паскаля, мечты Ады Лавлейс так и остались теоретическими, так как ей не довелось увидеть машину Бэббиджа воплощенной в металле. Утешением Аде Лавлейс послужило искреннее восхищение Майкла Фарадея, видевшего первую в мире компьютерную программу, вышедшую из-под пера этой необыкновенной женщины. Жизнь ее была искалечена тяжелым душевным конфликтом, возникшим из-за несчастливого брака и романов, которые общество того времени считало скандальными и недопустимыми для женщины. Но и этого было мало — Ада Лавлейс решила изобрести алгоритм, позволяющий выигрывать пари, и потеряла на этом несколько тысяч фунтов. Так же как Паскаль, Ада умерла очень рано — Паскаль не дожил до сорока лет, а Огаста Ада Байрон Лавлейс — до тридцати семи.