Бэббидж работал над машиной совместно с Адой Лавлейс, дочерью лорда Байрона. Ее вклад был по достоинству оценен позднее, и теперь Ада Лавлейс считается первым программистом в истории. Она предвидела, что в будущем компьютеры будут использоваться не только для численных расчетов, в то время как Бэббидж уделял основное внимание именно им.
* * *
АДА БАЙРОН, ГРАФИНЯ ЛАВЛЕЙС (1815–1852)
Ада Августа Байрон была единственной дочерью лорда Байрона и Анабеллы Милбэнк. Девочка не знала отца, так как родители разошлись за месяц до ее рождения, и лорд Байрон навсегда покинул Англию. Она была болезненным ребенком (слабое здоровье она унаследовала от отца), поэтому обучалась на дому. Особое внимание при этом уделялось математике и другим наукам. Ее обучали известные преподаватели: Уильям Френд, Уильям Кинг, Мэри Сомервилл и Огастес де Морган. Учителя считали, что девочка сможет стать исследователем первой величины. Мэри Сомервилл представила ее Чарльзу Бэббиджу. В знак признания ее заслуг по созданию языков программирования Министерство обороны США назвало в ее честь язык программирования Ада.
* * *
Они начали сотрудничать, когда Бэббидж попросил Аду Байрон перевести с французского текст Луиджи Менабреа об аналитической машине, написанный вскоре после выступления Бэббиджа в Турине, куда его пригласил математик Джованни Плана. Ада дополнила статью Менабреа примечаниями, которые по объему превысили исходный текст. В знаменитом примечании G помимо других важнейших открытий описывается алгоритм вычисления чисел Бернулли на языке программирования машины Бэббиджа с помощью двух циклов. Так было доказано, что машина Бэббиджа может иметь самое широкое применение. Это была первая в мире компьютерная программа. Ада также описала алгоритмы вычисления тригонометрических функций, в которых использовались переменные.
* * *
БУДУЩЕЕ, ОПИСАННОЕ В ПРИМЕЧАНИИ G
В примечании G Ада Лавлейс выразила уверенность, что не только машина Бэббиджа, но и сам новый способ обработки информации произведут революцию в науке: «Аналитическая машина не претендует на то, чтобы дать начало чему-либо. Она способна выполнить всё, что мы сможем приказать ей. Она может произвести анализ, но не способна предугадать ни истинность высказываний, ни взаимосвязь между ними. Она способна помогать нам, делая доступнее то, что нам уже известно. Изначально эффект от ее использования будет получен преимущественно в этой области, однако весьма вероятно, что она окажет косвенное и взаимное влияние на саму науку. Распространение и сочетание истин и формул анализа, которое возможно будет выполнить при помощи машины, прольет свет на взаимосвязи и природу множества научных материй, которые станет возможно изучить более глубоко. Возможно, это косвенный и несколько спекулятивный результат этого открытия, но нет сомнений, что эта новая форма записи математических истин и работы с ними открывает новые перспективы, пусть и в теории. Во всех областях человеческой власти и познания помимо основной цели всегда сочетаются различные побочные воздействия».
* * *
Некоторые исследователи высказывают сомнения относительно того, кто был автором примечания G. Быть может, это был сам Бэббидж? Как бы то ни было, бесспорно, Ада обладала обширными знаниями математики и была знакома с принципом действия аналитической машины. Она настолько тесно сотрудничала с ее изобретателем, что ее вклад в разработку аналитической машины трудно переоценить.
Ада превосходно разбиралась в устройстве станка Жаккара, и некоторые авторы считают, что именно она подсказала Бэббиджу, что для ввода программ и данных в аналитическую машину можно использовать перфокарты. Ада сформулировала понятия инструкций, циклов и подпрограмм, которые известны каждому, кто знаком с языками программирования. За ее талант и знания математики Бэббидж называл ее «повелительницей чисел» (the Enchantress of Numbers).
Аналитическая машина также не была сконструирована полностью, на этот раз из-за возникших финансовых, политических и юридических проблем. Были разработаны лишь некоторые компоненты, в частности элементы арифметического устройства и системы печати. Ни память, ни программируемые компоненты созданы не были.