В XIX в. счетные машины стали более доступны и распространены примерно так же широко, как и другие, похожие на них аппараты – пишущие машинки. Многие бухгалтерские фирмы, предприниматели и обычные торговцы начинают пользоваться калькуляторами, которые быстро стали неотъемлемой частью интерьера и были незаменимы в работе. Становится сложно представить себе, как люди до сих пор обходились без них.
Продолжая ходить по музею, я вижу ряд машин, современных паскалине. Здесь представлены арифмометр Тома де Кольмара, машина умножения Леона Болле, полихромной арифмограф Дюбуа и комптометр Фелта и Тарранта. Одним из наиболее популярных аппаратов, пользовавшимся большим успехом, был арифмометр, который разработал в России шведский инженер Вильгодт Теофил Однер. Эта машина состоит из трех основных элементов: верхняя часть, на которой посредством небольших рычагов выставляются необходимые числа, нижняя часть, состоящая из каретки, способная смещаться в горизонтальном направлении и на которой отображается результат операции, а справа расположена рукоятка, при вращении которой производятся арифметические действия.
При каждом повороте рукоятки число в верхней части добавляется к числу, уже отображаемому на нижней каретке. Для того чтобы произвести вычитание, достаточно повернуть рукоятку в другую сторону.
Теперь представьте, что вам необходимо выполнить умножение 374 × 523. Укажите число 374 в верхней части и поверните рукоятку три раза. В нижней части отобразится 1122, результат операции 374 × 3. Передвиньте теперь каретку на разряд десятков и поверните рукоятку еще два раза. Получится 8602, что соответствует произведению 374 и 23. Передвиньте каретку еще на один разряд – до сотен – и поверните рукоятку на пять оборотов, и вы получите результат: 195 602. Немного потренировавшись, вы сможете производить умножение за несколько секунд.
В 1834 г. на ум английского математика Чарльза Баббеджа приходит по меньшей мере нелепая идея совместить счетную машину с ткацким станком! В те годы работа ткацкого станка претерпела ряд усовершенствований. Одним из них стало внедрение перфокарт, что обеспечило использование одного станка для изготовления тканей с различными узорами, не изменяя его параметры. В зависимости от наличия или отсутствия отверстия в карте, шарнирный крюк проходит или не проходит, а уточная нить проходит выше или ниже основной ткани. Таким образом, достаточно перенести желаемый рисунок на перфокарту и поместить ее в машину.
Исходя из свойств этой модели, Чарлз Бэббидж замыслил создать механический калькулятор, способный не только осуществлять такие действия, как, например, сложение или умножение, но и адаптироваться и выполнять миллионы различных операций в зависимости от того, какая перфокарта будет в него вставлена. Если быть более точным, эта машина может выполнять любые полиномиальные действия, то есть расчеты, сочетающие в произвольном порядке четыре основные операции и возведение в степень. Аналогичным образом тому, как на паскалине нужно было выполнять одни и те же манипуляции, независимо от исходных чисел, машина Бэббиджа позволяла производить одни и те же манипуляции, независимо от выполняемых действий. Больше не было необходимости, как в случае, например, с арифмометром Однера, вращать рукоятку в противоположном направлении в зависимости от того, что нужно выполнить – сложение или вычитание. Достаточно просто записать необходимые действия на перфокарте, и машина сама обо всем позаботится. Благодаря этой революционной функции изобретение Бэббиджа принято считать первой в истории вычислительной машиной.
Использование такой машины бросало новый вызов. Чтобы выполнить расчет с ее помощью, необходимо было обеспечить возможность изготовления соответствующих перфокарт, состоящих из последовательности отверстий и сплошных мест, которые улавливает механизм, вследствие чего будут выполняться все операции действие за действием. Таким образом, пользователь машины должен перед началом ее использования создать соответствующую перфокарту.
Разработкой устройства, способного переводить требуемые вычисления на язык математики, занималась британский математик Ада Лавлейс, которая вела исследования в данной области. Она исследовала функционал машины и пришла к выводу, что сам Бэббидж не представлял ее потенциал. Лавлейс создаст сложный код для вычисления последовательности Бернулли, что было чрезвычайно полезным в исчислении бесконечно малых величин последовательности, обнаруженной за более чем сто лет до того швейцарским математиком Якобом Бернулли. Этот код принято считать первой компьютерной программой, что делает, таким образом, Лавлейс первым программистом в истории.
Ада Лавлейс умерла в 1852 г. в возрасте 36 лет. Чарльз Бэббидж на протяжении всей жизни пытался построить свою машину, но умер в 1871 г., так и не дождавшись завершения изготовления ее прототипа. Только в XX в. удалось наконец увидеть работу машины Бэббиджа в действии. Наблюдать за одним из таких калькуляторов – это поистине потрясающее и чарующее зрелище. Его внушительный размер (высотой примерно в два метра и шириной в три) и работа сотен шестеренок, которые движутся внутри, одновременно поражает и изумляет.
Незаконченный прототип аппарата, разработкой которого занимался британский ученый, в настоящее время хранится в Музее науки в Лондоне. Функционирующую копию, воспроизведенную в начале XXI в., можно увидеть в Музее компьютерной истории в Маунтин-Вью, штат Калифорния.
В XX в. использование вычислительных машин достигнет такого уровня, о котором Бэббидж и Лавлейс даже не могли подумать. Калькуляторы найдут свое применение для решения как самых древних, так и совсем новых математических задач.
С одной стороны, исчисление бесконечно малых величин и мнимые числа позволили описать в виде уравнений электромагнитные явления, которые вскоре будут применены в электронных устройствах. С другой стороны, в XIX в. были заново подняты вопросы, затрагивавшие фундаментальные основы математики, аксиомы и рассуждения в доказательствах. Так, с одной стороны, у машин появилась высокоэффективная инфраструктура, а с другой – возможность осуществлять простейшие действия для нахождения решения более сложных задач.
Одним из главных деятелей этой революции был британский математик Алан Тьюринг. В 1936 г. он опубликовал статью, в которой провел параллель между возможностью доказать теорему с помощью математики и способностью найти решение с помощью вычислительных машин с использованием достижений информатики. Он впервые описывает принцип действия машины, впоследствии названной в его честь, который до сих пор широко используется в теоретических основах вычислительной техники. Машина Тьюринга была теоретической конструкцией. Британский математик не занимался разработкой конкретных механизмов, с помощью которых такая машина могла бы работать. Он всего лишь оценивал основные операции, которые могли бы выполняться на его машине, и задавался вопросом, какой результат можно получить, комбинируя их. Здесь прослеживается четкая аналогия с тем, как в математике, исходя из сформулированных аксиом, ученые затем пытаются вывести теоремы, основываясь на них.