Возникновение и широкое распространение современных электронных вычислительных машин вызвали к жизни и делают массовой новую профессию - программиста. Любопытно, что первую вычислительную программу для счетной машины составила дочь великого английского поэта Джорджа Байрона - Августа Ада Лавлейс.
АНАЛИТИЧЕСКАЯ МАШИНА
В 1834 году выдающийся английский ученый и изобретатель Чарльз Бэббедж сконструировал универсальную вычислительную машину с программным управлением. Разумеется, эта машина не могла быть электронной, а была чисто механической. Однако ее структура полностью предвосхищала структуру современных вычислительных машин она имела память («склад», по терминологии Бэббеджа), арифметическое устройство («мельницу»), устройство управления, устройство ввода и устройство вывода, которое печатало результаты вычислений. Работала машина по программе, набитой на перфокартах.
Долгие годы Бэббедж безуспешно добивался финансовой поддержки правительства для постройки аналитической машины, как он назвал свое изобретение.
В 1840 году по приглашению известного итальянского математика М. Плана Бэббедж отправляется в Турин, где в течение нескольких дней излагает итальянским математикам и инженерам принципы действия своей машины.
Один из участников встречи, молодой военный инженер Л. Ф. Менабреа (впоследствии генерал в армии Гарибальди, а затем премьер-министр Италии), подробно конспектирует Бэббеджа и через два года в одном из швейцарских научных журналов появляется статья «Очерк аналитической машины, изобретенной Чарльзом Бэббеджем». Именно эта статья сыграла столь важную роль в жизни героини нашего рассказа Ады Лавлейс.
АДА ЛАВЛЕЙС
Семейная жизнь великого английского поэта Байрона сложилась неудачно. Он женился на Аннабелле Милбэнк 2 января 1815 года; 10 декабря у них родилась дочь, которую назвали Августа Ада, а с января 1816 года супруги разъехались навсегда.
Аннабелла Милбэнк увлекалась математикой, и с детства до замужества занималась ею под руководством профессора Уильяма Френда. Она дружила с дочерью своего учителя Софи Френд (в замужестве Софи де Морган), муж которой, известный английский математик и логик Август де Морган, был впоследствии учителем Ады Байрон, занимавшейся математикой успешно, и с увлечением. К числу друзей Аннабеллы Мнлбэнк принадлежал и Чарльз Бэббедж. Юная Ада Байрон посещает его мастерскую, где знакомится с его работой над вычислительными машинами.
Вот, как описывает в своих мемуарах миссис де Морган это посещение - «В то время, как большинство из присутствующих только глазело на это прекрасное устройство выражая свое восхищение возгласами, характерными для дикарей, которые впервые увидели зеркало или услышали пушечный выстрел, юная мисс Байрон разобралась в принципе его работы и оценила его красоту»
Чарльз Бэббедж искренне полюбил Аду Байрон. Он находил в ней главное, что ценил в людях, - остроту ума. Быть может, сыграло роль и то, что Ада была почти ровесницей его рано умершей дочери. Бэббедж следит за научными занятиями Ады, посылает ей статьи и книги, представляющие интерес и знакомит со своими работами.
Семейная жизнь Августы Ады сложилась счастливей, чем у ее родителей. В июле 1835 года она вышла замуж за Уильяма, восемнадцатого лорда Кинга, ставшего впоследствии первым графом Лавлейсом. Сэр Уильям, которому в то время исполнилось 29 лет, был спокойным, уравновешенным и приветливым человеком. Он с одобрением относился к научным занятиям своей жены и помогал ей как мог.
Супруги вели светский образ жизни, регулярно устраивая вечера и приемы, на которых бывал «весь Лондон». Один из постоянных посетителей этих вечеров, редактор популярного лондонского журнала «Экзаминер». Олбани Фонбланк, оставит такой портрет хозяйки дома «Она была ни на кого не похожа и обладала талантом не поэтическим, но математическим и метафизическим.»
Не менее выразительна и авто характеристика, данная Адой в одном из писем к Бэббеджу «Мой мозг - нечто большее, чем просто смертная субстанция; я надеюсь, время покажет это (если только мое дыхание и прочее не будут слишком быстро прогрессировать к смерти).
Клянусь Дьяволом, что не пройдет и десяти лет, как я высосу некоторое количество жизненной крови из загадок вселенной, причем так, как этого не смогли бы сделать обычные смертные губы и умы. Никто не знает, какие ужасающие энергия и сила лежат еще неиспользованными в моем маленьком гибком существе.
Я сказала «ужасающие», так, как Вы можете вообразить, что это означает в некоторых обстоятельствах. Граф Л. иногда говорит - «Каким генералом могла бы ты быть». Представьте меня со временем в общественных и политических заботах (я всегда мечтала обладать мировой властью, силой и славой - эта мечта никогда не сбудется...). Для вселенной хорошо, что мои устремления и честолюбие навсегда связаны с духовным миром и, что я не собираюсь иметь дела с саблями, ядами и интригами вместо х, у и z»
«ПРИМЕЧАНИЯ ПЕРЕВОДЧИКА»
Упоминавшаяся нами статья «Очерк аналитической машины, изобретенной Чарльзом Бэббеджем», заинтересовала Аду, и она перевела этот очерк на английский язык. «Я спросил, почему она не написала самостоятельной статьи по этому вопросу, с которым была так хорошо знакома, - писал Бэббедж в 1864 году в своей автобиографической книге «Послания из жизни философа» - На это леди Лавлейс отвечала, что эта мысль не пришла ей в голову. Тогда я предложил, чтобы она добавила некоторые примечания к очерку Менабреа. Эта идея была немедленно принята.»
Перевод статьи Менабреа занимает 20 страниц. Примечания же Ады Лавлейс - в два с половиной раза больше, 50 страниц. Одно это сопоставление показывает, что А. А. Лавлейс отнюдь не ограничилась ролью простого комментатора.
Уже после получения первых корректур она пишет Бэббеджу «Я хочу вставить в одно из моих примечаний кое-что о числах Бернулли в качестве примера того, как неявная функция может быть вычислена машиной без того, чтобы предварительно быть разрешенной с помощью головы и рук человека. Пришлите мне необходимые данные и формулы». Бэббедж прислал все необходимые сведения. Желая избавить Аду от трудностей, он сам составил, как мы сказали бы сейчас, алгоритм для нахождения этих чисел, но. допустил при этом грубую ошибку, которую Ада обнаружила. 19 мая она сообщила Бэббеджу, что самостоятельно «составила список операций для вычисления каждого коэффициента для каждой переменной», то есть написала программу для вычисления чисел Бернулли.
Эта программа вызвала восторг Бэббед-жа. Зная, как много значит его оценка для неуравновешенной и легко впадающей в крайности Ады, он не жалел хвалебных слов по ее адресу; впрочем, они были вполне заслуженными. Поддержка и теплые слова укрепляли уверенность Ады и давали ей силы для работы. Успехи давались ей большим напряжением и не без ущерба для здоровья, на, что она неоднократно жалуется в письмах Бэббеджу.
Наконец, 8 августа 1843 года напряженная работа закончена. Ада долго не могла решить, как подписать перевод и «Примечания». Подписывать литературные произведения для графини было отнюдь не в обычаях того времени. С другой стороны, Аде хотелось, чтобы эта и последующая работы, о которых она мечтала, могли, как-то связываться с ее именем. По совету мужа она решает под каждым примечанием поставить свои инициалы.
ПРОВОЗВЕС ГНИЦА
«Очерк аналитической машины, изобретенной Чарльзом Бэббеджем». Л. Ф. Менабреа и «Примечания переводчика». А. А. Лавлейс являются основными источниками, по которым мы можем познакомиться с выдающимся изобретением XIX века - универсальной цифровой вычислительной машиной с программным управлением, предшественницей современных быстродействующих вычислительных машин. При этом статья Менабреа касается в большей степени технической стороны дела, тогда, как примечания Лавлейс - математической, вопросов программирования. По этой причине статья Менабреа представляет сейчас только исторический интерес, так, как современные вычислительные машины построены на иных принципах и элементах. Напротив, «Примечания». Лавлейс заложили основы современного программирования, базирующегося на тех идеях и принципах, которые были ею высказаны.
Прежде всего уже в то время А. А. Лавлейс отдавала себе полный отчет в колоссальной «широте спектра» возможностей универсальной вычислительной машины, которая основывалась на достаточно широком толковании основных понятий. Вот, что она писала по этому поводу:
«Изучая работу аналитической машины, мы обнаруживаем, что необходимо строго различать операции, объекты, над которыми операции совершаются и результаты операций. Мы обращаем на это внимание не только потому, что это совершенно необходимо для понимания работы аналитической машины и оценки ее возможностей, но также и потому, что это обычно мало принимается во внимание при изучении математики вообще.
...Под словом «операция» мы понимаем любой процесс, который изменяет взаимное отношение двух или более вещей, какого рода эти отношения ни были бы. Наука об операциях, как происходящая от математики, но более специальная, есть самостоятельная наука, имеющая свои абстрактные истины и значения, независимые от объекта, к которому мы применяем свои рассуждения и преобразования.
...Операционный механизм (машины) может быть приведен в действие независимо от объекта, над которым должна производиться операция. Этот механизм может действовать не только над числами, но и над другими объектами, основные соотношения между которыми могут быть выражены с помощью абстрактной науки об операциях и которые могут быть приспособлены к действию операционных обозначений и механизма машины. Предположим, например, что соотношения между высотами звуков в гармонии и музыкальной композиции поддаются такой обработке; тогда машина сможет сочинять искусно составленные и научные музыкальные произведения любой сложности или длительности»
Вместе с тем она очень четко представляла себе границы возможностей аналитической машины:
«Желательно предостеречь против преувеличения возможностей аналитической машины. При рассмотрении любого нового предмета существует тенденция, с одной стороны, переоценить то, что мы считаем интересным или замечательным, а с другой стороны, тенденция к недооценке истинного положения вещей, когда мы обнаруживаем, что наши устойчивые представления должны быть заменены.
Аналитическая машина не претендует на то, чтобы создавать, что-то действительно новое. Машина может выполнить все то, что мы умеем ей предписать. Она может следовать анализу, но она не может пред угадать, какие-либо аналитические зависимости или истины. Функции машины заключаются в том, чтобы помочь нам получить то, с чем мы уже знакомы». Конечно, в 1843 году, когда эти положения высказывались, Ада Лавлейс не могла предвидеть, как разовьется, и, какие формы примет программирование 100 - 120 лет спустя. А ведь только развитие программирования позволило Алану Тьюрингу опровергать в 1950 году «Возражение леди Лавлейс» (этому посвящен параграф известной статьи Тьюринга «Может ли машина мыслить?»).
В своей первой и, к сожалению, единственной научной работе Ада Лавлейс рассмотрела большое число вопросов, актуальных и для современного программирования. Достаточно упомянуть об «экономии рабочих ячеек». Кстати и термин «рабочие ячейки», весьма употребительный и по сей день, был введен именно ею. Большое внимание уделяла она центральному понятию программирования - понятию циклического вычислительного процесса или цикла. Этот термин также был впервые употреблен ею, и ее определение цикла почти дословно совпадает с определением современных учебников программирования.
Чарльзу Бэббеджу не удалось добиться от правительства финансовой поддержки для постройки аналитической машины. Перебрав различные способы добывания денег (он собирался сначала писать роман, а затем - сконструировать автомат для игры в «крестики-нолики», чтобы демонстрировать его за деньги), Бэббедж вместе с супругами Лавлейс принялся за разработку -, и практическую проверку - системы беспроигрышных ставок на бегах, рассчитывая таким путем добыть средства для продолжения работы над вычислительными машинами.
Разумеется, «система» не оправдала надежд. Проиграв довольно внушительную сумму, Бэббедж и граф Лавлейс отказались от участия в совершенствовании «системы». Но леди Ада, азартная и упрямая, продолжала играть. Вероятно, ни граф Лавлейс, ни Бэббедж не знали, насколько сильно она оказалась втянутой в эту рискованную игру, истратив на нее почти все свои личные средства. Она дважды закладывала свои фамильные жемчуга и упрашивала мать выкупить их по секрету от мужа. Более того, она оказалась в руках группы мошенников, которые шантажировали ее, грозя предать гласности ее участие в игре.
В начале пятидесятых годов Ада тяжело заболела. Летом 1852 года она уже не поднимается с постели. Августа Ада Лавлейс скончалась 27 ноября 1852 года, не дожив нескольких дней до 37 лет, в том же возрасте, что и ее отец.
ЛИТЕРАТУРА
Р.С. Гутер и Ю.Л. Полунов. Чарльз Бэббедж. М.. «Знание», 1973
А. Тьюринг. Может ли машина мыслить? Л. Физматгиз, 1960.