Бэббидж предложил ей сделать некоторые примечания к переводу Менабреа, и она с энтузиазмом взялась за работу. Она начала работать и писать раздел, который она назвала «Примечания переводчика», что в конечном итоге вылилось в написание текста, содержащего 19 136 слов — больше чем вдвое превышающего оригинальную статью Менабреа. Подписала она свои комментарии инициалами AAL — Августа Ада Лавлейс, ее «Примечания» стали более знаменитыми, чем сама статья, и им суждено было сделать ее знаковой фигурой в истории программирования[42].
Когда она работала над комментариями в своем загородном поместье в графстве Суррей летом 1843 года, они с Бэббиджем обменивались десятками писем, а осенью, после того как она вернулась в свой лондонский дом, у них состоялось множество встреч. Вокруг вопроса о том, сколько в «Примечаниях» содержалось ее собственных мыслей, а сколько — Бэббиджа, периодически возникают академические споры с сексистским уклоном. В своих мемуарах Бэббидж отзывается о ней весьма лестно: «Мы обсуждали вместе, какие иллюстрации можно было бы использовать: я предложил несколько, но ее выбор был совершенно самостоятельным. Так же было и с алгебраическими проблемами, за исключением, конечно, задачи с числами Бернулли, которую я решил, чтобы леди Лавлейс не тратила зря время. Но она послала мне обратно мое решение для исправления, обнаружив грубую ошибку, которую я сделал в своем решении»[43].
В «Примечаниях» Ада предложила четыре концепции, которые будут активно обсуждаться век спустя, когда наконец появится компьютер. Во-первых, это концепция машины общего назначения, которая могла бы решать не только заданную задачу, но может быть запрограммирована и перепрограммирована на выполнение бесконечного числа и неограниченного круга задач. Другими словами, она нарисовала в своем воображении современный компьютер. Эта концепция описана в ее «Примечании А», где она подчеркивает разницу между первоначальной разностной машиной Бэббиджа и предложенной им новой аналитической машиной. «Разностная машина была построена для табулирования интеграла от конкретной функции Δ7uх = о[44], — начинает она, пояснив, что все это делалось для составления навигационных таблиц, — Аналитическая же машина, напротив, предназначается не только для расчета одной конкретной функции и никакой другой, но для табулирования любой функции».
Она написала, что это стало возможным благодаря тому, что в конструкцию машины были «внедрены принципы, которые Жаккард разработал, чтобы ткать парчовые ткани с самыми сложными узорами, а именно — управление рисунком с помощью перфокарт». Ада поняла значение этого даже лучше, чем Бэббидж[45]. Это означало, что машина может быть подобна компьютеру, который мы сейчас воспринимаем как данность, то есть может быть машиной, которая не просто выполняет конкретную арифметическую задачу, а является машиной общего назначения. Она объясняет: «Мы вышли за границы арифметики в тот момент, когда возникла идея применения карт. Аналитическая машина выбивается из ряда простых „расчетных машин“. Она занимает совершенно отдельную позицию. Сконструировав устройство, оперирующее общими символами, которые могут образовывать неограниченное количество комбинаций, мы установили связь между операциями с материальными объектами и абстрактными мыслительными процессами» [46].
Эти предложения звучат несколько экзальтированно, но их стоит прочитать внимательно. Они передают сущность современных компьютеров. И Ада изложила свою мысль поэтическим слогом: «Аналитическая машина плетет алгебраические узоры так же, как ткацкий станок Жаккарда ткет цветы и листья». Когда Бэббидж прочитал «Примечание А», он пришел в восхищение, не внес никаких изменений в текст и написал ей: «Умоляю вас ничего не менять в нем».
Второе примечание Ады возникло из описания общего назначения машины. Она поняла, что ее функции не должны ограничиваться математикой и числами. Обратившись к обобщению де Морганом алгебры на формальную логику, она заметила, что такое устройство, как аналитическая машина, может хранить, управлять, обрабатывать и работать с некоторыми нечисловыми объектами, которые могут быть выражены в символах: словами, логическими операторами, музыкальными звуками и любыми другими, которые мы смогли бы описать символами.
42
Луиджи Менабреа, с примечаниями к тексту переводчика — Ады, графини Лавлейс,
43
Babbage,
44
Δ7
46
Все цитаты из текстов Менабреа и «Примечаний» Лавлейс приводятся по Menabrea,