Чтобы объяснить эту идею, она точно определила понятие операции: «Желательно пояснить, что под словом „операция“ мы понимаем любой процесс, который изменяет взаимное отношение двух или более вещей, каким бы это отношение ни было». Операция такой машины, отметила она, может изменить отношение не только между числами, но и между любыми символами, которые логически связаны между собой. «Она может манипулировать другими объектами, а не только числами, если найти объекты, фундаментальные соотношения между которыми могут быть выражены с помощью операций, описываемых абстрактной наукой». Аналитическая машина теоретически может даже выполнять операции с музыкальными звуками: «Допустим, например, что фундаментальные соотношения высоты звуков в науке о гармонии и музыкальной композиции возможно описать с помощью символов, тогда машина может составить искусное музыкальное произведение любой степени сложности». Это была Адина концепция «поэтической науки» в чистом виде — искусное и научно обоснованное музыкальное произведение, составленное машиной! Ее отец от такой идеи содрогнулся бы.
Эта концепция станет основной для цифровой эпохи: любой фрагмент контента, данных или информации: музыка, текст, изображения, числа, символы, звуки, видеоконтент — все это может быть записано в цифровом виде, и машина может этими символами манипулировать. Даже Бэббидж не смог понять это в полной мере — он ограничился операциями с математическими объектами. Но Ада поняла, что цифры, записанные с помощью шестеренок, могут обозначать и другие объекты, а не только математические величины. По существу она сделала концептуальный рывок, мысленно перейдя от машин, которые были просто калькуляторами, к тем, которые мы теперь называем компьютерами. Дорон Суэйд, занимающийся историей компьютеров и специализирующийся на изучении машин Бэббиджа, считает, что этот концептуальный скачок является одним из главных исторических наследий Ады. Он отметил: «Если мы поищем и внимательно исследуем историю этого концептуального скачка, то увидим, что именно Ада в своей публикации 1843 года совершила его»[47].
Третий вклад Ады состоял в том, что в своем заключительном «Примечании G» она подробно, шаг за шагом объяснила, как работает то, что мы сейчас называем компьютерной программой или алгоритмом. Для примера она написала программу вычисления чисел Бернулли[48] — чрезвычайно сложно устроенного бесконечного ряда чисел, которые в том или ином виде играют важную роль в теории чисел.
Чтобы показать, как аналитическая машина могла генерировать числа Бернулли, Ада описала последовательность операций, а затем составила диаграмму, показывающую, как каждая из них может быть закодирована в машине. Попутно она помогла разработать концепцию подпрограмм (последовательности инструкций, которые выполняют определенную задачу, например вычисление косинуса или сложных процентов, и которые могут по мере необходимости вставляться в более крупные программы), а также рекурсивных вложенных циклов (последовательности повторяющихся инструкций)[49]. Это стало возможным сделать благодаря применению перфокарт. Для определения каждого числа Бернулли, как она объяснила, необходимо семьдесят пять карт, затем процесс становится итерационным, поскольку это число отправляется обратно и используется в процессе уже для получения следующего числа. Она пишет: «Очевидно, что те же самые семьдесят пять переменных карт могут быть использованы для вычисления каждого последующего числа». Она предвидела, что будет создана библиотека часто используемых подпрограмм, и действительно, спустя столетие ее интеллектуальные наследники, в том числе такие женщины, как Грейс Хоппер из Гарварда, а также Кей Макналти и Джин Дженнингс из Пенсильванского университета, создадут такую библиотеку. Кроме того, машина Бэббиджа позволяла переходить туда и обратно внутри последовательности команд на картах в зависимости от полученных промежуточных результатов, и таким образом появилось то, что в будущем станет операцией условного перехода — когда тот или иной тип инструкций выбирается в зависимости от условий.
Бэббидж помогал Аде с расчетами чисел Бернулли, но из ее писем видно, что она сама глубоко погрузилась в сущность задачи. «Я упорно ищу и тщательно анализирую все возможные способы вычисления чисел Бернулли, — писала она в июле, всего за несколько недель до того, как ее перевод и примечания были посланы в печать. — Я в таком смятении из-за того, что возникло такое странное затруднение и разочарование с этими числами, что я сегодня не могу ничего делать… Я в оцепенении и растерянности»[50].
48
Названы в честь швейцарского математика XVII века Якоба Бернулли, который изучал суммы одинаковых степеней натуральных чисел. Числа Бернулли играют важную роль в теории чисел, математическом анализе и дифференциальной топологии. —
49
Пример Ады содержал табулирование многочленов с использованием в качестве подпрограммы разностных методов, для которых потребовалась структура вложенных циклов с изменяющимся диапазоном внутреннего цикла. —