Ада Лавлейс

Сложно поверить, но образец первой компьютерной программы появился еще в XIX веке. И создала его женщина — Августа Ада Байрон-Лавлейс.

Родилась она 10 декабря 1815 г. в Лондоне, в семье поэта Джорджа Байрона и его жены Анны Изабеллы. Августа Ада была единственной законной дочерью великого поэта. Впрочем, Байрон видел ее всего один раз, когда девочке был месяц. На тот момент отношения супругов разладились — 21 апреля Джордж оформил развод и покинул Англию. Из-за этого имя Августа, данное девочке отцом в честь его сестры, оказалось в семье под запретом, а из домашней библиотеки Анны Изабеллы исчезли все книги Байрона.

Воспитанием Ады занималась в основном бабушка: мать почти сразу после рождения малышки уехала в длительный оздоровительный круиз. Тем не менее от Анны Изабеллы, которую влюбленный Байрон называл королевой параллелограммов, Аде передалось увлечение математикой. Даже во время тяжелой продолжительной болезни девочка не прекращала занятий. Помимо докторов к ней приглашали учителей, среди которых был известный математик и логик Огастес де Морган, а также Мэри Сомервилль, переводившая с французского на английский «Трактат о небесной механике» Лапласа.

В 12-летнем возрасте Ада — втайне от матери — сама сконструировала и собрала летательный аппарат. Современники писали, что она удивительным образом сочетала в себе грацию, женственность, обаяние и острый ум. Держалась с достоинством, как дама высшего света, но обычные светские беседы наскучивали ей гораздо быстрее, нежели общение с учеными, философами и писателями. По уровню интеллекта она превосходила отличников Кембриджа и Оксфорда. Мужчины были от нее без ума, что вызывало зависть других женщин.

В 17 лет Аду представили королю и королеве, а затем познакомили с Чарльзом Бэббиджем, профессором Кембриджского университета. К тому времени Чарльз уже десять лет занимался разработкой счетной машины, которая могла бы производить вычисления многочленов с точностью до двадцатого знака, автоматически создавая таблицы значений логарифмов и тригонометрических функций. Задача была чрезвычайно сложной. Спустя десять лет британские власти разочаровались в подобном проекте и прекратили финансирование. Однако ученый не сдался и все-таки сконструировал «Большую разностную машину», базировавшуюся на тех же принципах, на которых основываются современные компьютеры.

Ада была восхищена его изобретением. В ее лице Бэббидж обрел не только друга, но и единомышленника.

В 20 лет Ада вышла замуж за 29-летнего барона Уильяма Кинга, который вскоре унаследовал титул лорда Лавлейса. Уильям искренне любил жену, с пониманием относился к ее увлечению математикой и не препятствовал научным изысканиям. Так что Ада была счастлива в браке, а трое детей лишь дополнили семейную идиллию.

В 1842-м Чарльз Бэббидж выступил в Туринском университете с докладом о своей аналитической машине. Лекция была записана юным итальянским инженером (и будущим премьер-министром Италии) Л. Менабреа на французском языке. Бэббидж обратился к Аде с просьбой перевести записи на английский, сопроводив текст комментариями. Ада подошла к делу чрезвычайно серьезно: потратив на работу больше года, она подготовила перевод с обширными комментариями на 52 страницы — по сути, самостоятельный научный трактат. Работа вышла за подписью ААЛ. Дело в том, что для тогдашних британок высшего света считалось непристойным публиковать научные труды под собственным именем.

Накануне публикации Ада написала Бэббиджу: «Я хочу вставить в одно из моих примечаний кое-что о числах Бернулли — в качестве примера того, как неявная функция может быть вычислена машиной без предварительного решения с помощью головы и рук человека». Речь шла о последовательности рациональных чисел, найденной Я. Бернулли в связи с вычислением суммы последовательности натуральных чисел, возведенных в одну и ту же степень; все нечетные числа этого ряда равны нулю, а знаки четных чередуются.

«Кое-что» оказалось гениальным предвидением будущего. Введя в оборот термины «цикл», «рабочая ячейка» и «распределяющая карта», Ада описала основные принципы алгоритмизации и разработала алгоритм вычисления чисел Бернулли на аналитической машине (сегодня этот алгоритм считается первой компьютерной программой). Она объяснила, как используются перфокарты для управления машиной, как проводятся отдельные виды вычислений с «операционными картами», определяющими последовательность операций, и с «картами переменных», которые задают значения.

«Аналитическая машина плетет алгебраические узоры — подобно Жаккардовому ткацкому станку, плетущему цветы и листья», — поясняла Ада. Рассуждая о циклах, циклах циклов и т. д. (известных сейчас как циклы и вложенные циклы), она представила, что «существует некий тканый портрет Жаккарда, для производства которого потребовалось 24 тыс. карт», и предложила использовать циклы для уменьшения числа карт. Дескать, только так можно переупорядочить операции и оптимизировать их исполнение, чтобы в итоге всего с тремя картами сделать то, на что без циклов потребовалось бы 330.

«Аналитическая машина не может создавать что-то новое… Ее цель — помогать нам в осуществлении того, с чем мы уже хорошо знакомы», — писала Ада, подчеркивая, что аналитическая машина способна производить такие точные и сложные вычисления, о каких раньше никто и не помышлял. Например, расчет коэффициентов возмущений Луны (т. е. отклонений Луны от орбитальной траектории). Кроме того, Ада предвидела, что представление «фактов и формул анализа» в форме, пригодной для машины, «обнаружит многие области знаний в новом свете, делая их более глубоко проработанными».

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

Смысл этих слов понял лишь Чарльз Бэббидж. То, что Лавлейс силой своей научной мысли заглянула в будущее значительно дальше, нежели создатель «Большой разностной машины», станет ясно только через полтора столетия. В 1975 г., когда Министерство обороны США начало разработку универсального языка программирования и встал вопрос о названии нового проекта, глава ведомства без колебаний дал ему имя «Ада». А сама Лавлейс получила титул Матери Программирования.

Жизнь Ады Лавлейс оказалась короткой. Она скончалась 27 ноября 1852 года в возрасте 36 лет.