Ада Лавлейс и первая компьютерная программа в мире
248 07/09/2021Августа Ада Байрон (1815 – 1852), единственная законная дочь знаменитого поэта лорда Байрона, родилась в 1815 году 10 декабря. А уже пять недель спустя после ее рождения брак родителей распался. Батюшка Ады был талантлив, непредсказуем и для семейной жизни не создан. Когда родилась дочь, ему исполнилось 27 лет. Как известного поэта его уже знали не только в Англии, но и по всей Европе. При этом в равной степени обсуждали и стихи Байрона, и его внешность, и его эксцентрическое поведение. Он умер на трагическом рубеже, отмеченным в песне В. Высоцкого. Ему исполнилось тогда 36 лет, и он пребывал на пике своей славы. Аде же тогда было 8 лет.
Её мать, которую звали Анна Изабелла (а чаще Аннабелла) Милбэнк, была прямой противоположностью своему искристому и игристому мужу. Будучи уравновешенной, хорошо образованной и рассудительной, она боялась, что дочка характером пойдёт в отца. Обуздать дикие страсти, считала матушка, поможет строгое образование на высоком научном уровне. Сама Аннабела любила математику, что было не свойственно благородной девушке в то время. Упорхнувший от неё Байрон даже называл жену «принцессой параллелограммов».
Как ни удивительно, строгая математика очаровала Аду. В 12 лет она попыталась изобрести летательный аппарат на паровой тяге. Сестры Райт из неё не получилось, но любовь к машинам в душе осталась. Чуть позже, когда ей исполнилось 17 лет, Ада вышла в свет, была представлена королю, а немного позже познакомилась с Чарльзом Бэббиджем.
В то время Бэббиджу исполнился уже 41 год. Кембриджский университет он закончил в 1814 году, за год до рождения Ады, а его старший сын был Аде ровесником.
Когда Ада познакомилась с Чарльзом Бэббиджем, он работал над прототипом вычислительной машины под названием «Разностная машина».
Разностная машина по сути дела была механическим калькулятором. Устройства такого типа задолго до Бэббиджа создал Блез Паскаль в 1642 году. И, похоже, что не он был первым. Во времена Бэббиджа такие машины были большой редкостью и их не думали использовать для механизации вычислений.
Вычисления же тогда были нужны в первую очередь для создания таблиц логарифмов и тригонометрических функций, вроде знаменитых в советское время таблиц Брадиса. Эти математические таблицы были нужны и военным, и инженерам, и навигаторам, и финансистам. А создавались они целой армией вычислителей, которая, как и положено армии, разделялась на уровни, каждый из которых выполнял свою часть работы. Самые низкоуровневые вычисления основывались на методе конечных разностей, с помощью которого функции представлялись в виде многочленов. После чего, для нахождения значения функции в определённой точке следовало решать систему линейных уравнений. Идя Бэббиджа состояла в том, чтобы приспособить автоматическое вычислительное устройство для этих вычислений. Потому-то он и назвал свою вычислительную машину «разностной». Разностная машина Бэббиджа могла с помощью разностного метода вычислять любой многочлен с заданной степенью точности и автоматически выдавать результат. Тем самым высвобождалась если не армия, то полк вычислителей самого низкого уровня, а точность и скорость работы значительно повышались.
В те времена слово «машина» применяли только к паровику, совсем недавно изобретённому Джеймсом Уаттом паровому двигателю. Его внедрили в самые разные отрасли производства. Могучий двигатель, сверкающий огнём и испускающий пар, приводил в движение станки и молоты на заводах и насосы на угольных шахтах. Это было удивительно, и это давало потрясающий эффект в виде повышения производительности труда. Однако, для того, чтобы вращать шестерёнки арифмометра не нужна была могучая сила. Ада и Бэббидж столкнулись с другой проблемой. Чтобы «научить» машину считать, ей следовало бы каким-то образом «объяснить» весь процесс расчёта. И было понятно, что хитрые механические устройства, сделанные из железа, вряд ли в этом помогут. Следовало придумать что-то другое. И Ада придумала.
Первую разностную машину Бэббиджа Ада увидела в 1833 году. Ну-ка посчитайте, сколько ей было лет в то время! Эта штука показалась девушке удивительной, и она обсуждала перспективы и в переписке с Бэббиджем, и в беседах с Мэри Сомервилль, благодаря которым она всё глубже погружалась в математику, испытывая при этом огромное удовольствие. А кроме того, благодаря знакомству с Мэри, Ада познакомилась с лордом Уильямом Кингом, другом сына своей подруги. Лорду Уильяму в ту пору исполнилось 30 лет, он был выпускником Итонского колледжа и Кембриджского университета. В общем, у Ады с ним завязались романтические отношения, и 8 июля 1835 года они поженились. Через три года Уильям Кинг получил графский титул и Ада стала графиней Лавлейс.
Семейная жизнь – есть семейная жизнь и несколько лет Ада занималась воспитанием своих троих детей и управлением домашним хозяйством. Математика в это время была для неё хобби, как, к примеру, игра на арфе или верховая езда.
В 1837 году на британский престол взошла королева Виктория и Ада была ей представлена, как дама высшего света.
В 1939 году, несколько месяцев спустя после рождения третьего ребёнка, Ада вполне серьёзно погружается в изучение курса математики. И получает от этого не только удовольствие, но и похвалы от своего наставника, университетского профессора математики Августа де Моргана. В процессе обучения она понимает, что вполне способна к математическим открытиям и, более того, желает сделать таковые.
За это время Ч. Бэббидж сделал некоторую научную карьеру, но продолжал разрабатывать проект автоматической счётной машины, которую он теперь называл «аналитической», поскольку понял, что такая машина может решать множество других вычислительных задач. А главное, он понял, каким образом можно управлять последовательным шагами вычислений. Оказалось, что для этого следует применять перфокарты. Это не было изобретением Бэббиджа. Куски картона с пробитыми в них отверстиями начал применять в 1801 году французский изобретатель Жаккар для программирования (он, конечно, не знал такого слова) узоров на тканях, которые ткались на изобретённых им автоматических ткацких станках.
Однако с воплощением изобретения Бэббиджа в жизнь дело не двигалось, хотя проект создания аналитической машины финансировался правительством и на это дело было потрачено около 2 миллионов долларов в переводе на нынешние цены. Дело было в технологии производства первой трети 19-го века. К тому времени не была разработана теория допусков и посадок, без которой ни одну сложную машину собрать невозможно. А машина Бэббиджа была сложной, в ней должны были зацепляться и крутиться тысячи латунных или бронзовых шестерёнок. Каждую шестерёнку делали вручную, и где-то из-за нестыковки поверхностей зубчатых колёс вращение стопорилось. В 1842 году новое правительство во главе с Робертом Пилем вообще отказало в дальнейшем финансировании проекта. Парламентарии не понимали зачем Великобритании автоматическая счётная машина!
Как говорится, нет пророка в своём отечестве. Но в чужом отечестве, в Италии, идеи Бэббиджа вызвали интерес. В 1840 году изобретатель прочёл несколько лекций об аналитической машине в Турине. Статья по мотивам этих лекций была опубликована на французском языке в октябре 1842 года. В феврале 1843 года Ада решила сделать перевод этой статьи на английский язык и добавить к нему свои примечания. В этих примечаниях, которые, кстати, оказались в три раза длиннее исходной статьи, Ада Лавлейс опубликовала первую в мире программу, которая позволяла производить автоматическое вычисления чисел Бернулли. Всё это позволяет считать Аду Лавлейс первым в мире программистом.
Заметим, кстати, что числа Бернулли – важный математический объект, аналогичный коэффициентам бинома Ньютона. Эти числа появляются в задачах вычисления суммы последовательных натуральных чисел, возведённых в одну и ту же степень. Они играют большую роль в теории чисел и, в частности, в попытках доказательства Великой теоремы Ферма.
Кроме того, Ада обозначила потенциал аналитической машины Бэббиджа, которая так и не была построена по техническим причинам. С её точки зрения аналитическая машина являлась прообразом универсального устройства для обработки любой, а не только цифровой информации. Например, Ада рассматривала возможность обрабатывать музыкальные ноты, буквы и даже изображения.
Более того, 14 августа 1843 года она написала Бэббиджу большое письмо, в котором предлагала помощь свою и своего мужа, лорда Уильяма Лавлейса, в осуществлении его проекта аналитической машины в течение ближайших нескольких лет. Очевидно, что это были не пустые слова. Семейство, входившее в число первых лиц империи, представленных королеве, могло бы столкнуть с мёртвой точки проект создания механического компьютера. Нет сомнения в том, что это привело бы к серьёзному изменению науки и техники всей викторианской эпохи. Любителей альтернативной истории, которым интересно, как бы выглядел тот прекрасный, но иной мир, отсылаем к увлекательной книге У. Гибсона и Б. Стерлинга «Машина различий», которую можно считать классикой в жанре стимпанка. Этот жанр повествует о том, куда бы мог пойти мир, застрявший в эпохе паровых машин.
Однако жизнь внесла свои коррективы. К совместной работе Бэббидж и Ада так и не приступили. Главной причиной стало ухудшающееся здоровье Ады. У неё обнаружили рак, и она скончалась 27 ноября 1852 года в возрасте 36 лет, пережив своего отца, лорда Байрона на 266 дней.
Чарльз Бэббидж скончался в 1871 году, и его работы по созданию аналитической машины так и не завершились созданием какого-нибудь реального прототипа. Тем не менее, механические вычислительные устройства продолжали развиваться, постепенно превращаясь в электромеханические и, наконец, в электронные. Когда в 1940-е годы начало развиваться программирование, о работах Бэббиджа и Ады Лавлейс вспомнили и осмыслили их заново. Однако и в 1960-е годы труды Бэббиджа и Ады не были слишком известны. Ситуация изменилась в 1980-е годы, когда Министерство обороны США назвало язык программирования микропроцессорных устройств в честь Ады. Именно тогда стали появляться биографии Ады Лавлейс и Чарльза Бэббиджа, и даже увлекательные художественные книги.