Книга: Архитекторы компьютерного мира
Ада Августа Лавлейс Дочь Байрона, первая программистка
Ада Августа Лавлейс
Дочь Байрона, первая программистка
Мне хотелось бы, чтобы ты получила от леди Байрон сведения о наклонностях Ады, ее привычках, занятиях, нравственных качествах и характере, а также ее внешности. Общительна ли она или любит уединение, молчалива или разговорчива, любит ли читать или наоборот? Пылкая ли у нее натура? Надеюсь, что Бог наградит ее чем угодно, но только не поэтическим даром.
Ада Августа Лавлейс
Высказанные в письме к своей двоюродной сестре опасения великого поэта Англии относительно "поэтического дара" дочери оказались напрасными. Ада Байрон преуспела в совершенно другой области — она составила первую компьютерную программу и потомки нарекли ее "первой программисткой".
Августа Ада Байрон родилась 10 декабря 1815 года, а в январе 1816 года ее родители — супруги Джордж Байрон и Аннабелла Милбэнк — разъехались навсегда.
Ада Байрон с детства успешно и с увлечением занималась математикой. Ее учителем был известный английский математик и логик Август де Морган. К числу друзей Аннабеллы Милбэнк принадлежал выдающийся английский ученый и изобретатель Чарльз Бэббидж. Юная Ада посещает его мастерскую, где знакомится с его работой над вычислительными машинами. Чарльз Бэббидж искренне полюбил эту девушку, он находил в ней главное, что ценил в людях, — остроту ума. Быть может, сыграло роль и то, что Ада была почти ровесницей его рано умершей дочери. Бэббидж следит за научными занятиями Ады, посылает ей статьи и книги, представляющие интерес, и знакомит со своими работами.
Семейная жизнь Августы Ады сложилась счастливо. В июле 1835 года она вышла замуж за Уильяма, восемнадцатого лорда Кинга, ставшего впоследствии первым графом Лавлейсом. Сэр Уильям, которому в то время исполнилось 29 лет, был спокойным, уравновешенным и приветливым человеком. Он с одобрением относился к научным занятиям своей жены и помогал ей как мог.
Супруги вели светский образ жизни, регулярно устраивали вечера и приемы, на которых бывал "весь Лондон". Один из постоянных посетителей этих вечеров, редактор популярного лондонского журнала "Экзаминер" Олбани Фонбланк, оставит такой портрет хозяйки дома: "Она была ни на кого не похожа и обладала талантом не поэтическим, но математическим и метафизическим…"
Портрет графини Лавлейс
Очень выразительна и автохарактеристика, данная Адой в одном из писем Бэббиджу: "Мой мозг — нечто большее, чем просто смертная субстанция; я надеюсь, время покажет это (если только мое дыхание и прочее не будут слишком быстро прогрессировать к смерти).
Клянусь дьяволом, что не пройдет и десяти лет, как я высосу некоторое количество жизненной крови из загадок вселенной, причем так, как этого не смогли бы сделать обычные смертные губы и умы. Никто не знает, какие ужасающие энергия и сила лежат еще неиспользованными в моем маленьком гибком существе.
Я сказала "ужасающие", т. к. Вы можете вообразить, что это означает в некоторых обстоятельствах. Граф Л. иногда говорит: "Каким генералом могла бы ты быть". Представьте меня со временем в общественных и политических заботах (я всегда мечтала обладать мировой властью, силой и славой — эта мечта никогда не сбудется…). Для вселенной хорошо, что мои устремления и честолюбие навсегда связаны с духовным миром и что я не собираюсь иметь дела с саблями, ядами и интригами вместо х, у и f.
Статья военного инженера Л. Ф. Менабреа (впоследствии генерал в армии Гарибальди, а затем премьер-министр Италии) "Очерк Аналитической машины, изобретенной Чарльзом Бэббиджем" заинтересовала Аду, и она перевела ее на английский язык. Тогда Бэббидж предложил ей добавить некоторые примечания к переводу. Эта идея была немедленно принята. Перевод статьи Менабреа занимает 20 страниц, примечания же Ады Лавлейс — в два с половиной раза больше, 50 страниц. Одно это сопоставление показывает, что А. А. Лавлейс отнюдь не ограничилась ролью простого комментатора. При этом статья Менабреа касается в большей степени технической стороны дела, тогда как примечания Лавлейс — математической.
После получения первых корректур она пишет Бэббиджу: "Я хочу вставить в одно из моих примечаний кое-что о числах Бернулли в качестве примера того, как неявная функция может быть вычислена машиной без того, чтобы предварительно быть разрешенной с помощью головы и рук человека. Пришлите мне необходимые данные и формулы". По ее просьбе Бэббидж прислал все необходимые сведения и, желая избавить Аду от трудностей, сам составил алгоритм для нахождения этих чисел. Но допустил очень грубую ошибку в составлении алгоритма, и Ада сразу же это обнаружила. Она самостоятельно написала программу для вычисления чисел Бернулли.
Эта программа представляет исключительный интерес, поскольку величина, сложность и математическая постановка данной задачи не идут ни в какое сравнение с элементарными примерами. Этот пример позволил Лавлейс в полной мере показать методику программирования на Аналитической машине и те преимущества, которые дает последняя при подходящем методе вычислений.
Предвосхищая "этапы" компьютерного программирования, Ада Лавлейс, так же как и современные математики, начинает с постановки задачи, затем выбирает метод вычисления, удобный для программирования, и лишь тогда переходит к составлению программы.
За определение числа Бернулли Лавлейс берет следующее выражение:
Оно неудобно, т. к. требует суммирования ряда. Другая форма задания предпочтительнее:
Но последняя формула представления B2n-1 имеет существенные недостатки. Поэтому Лавлейс выводит рекуррентную формулу:
и принимает ее за основу метода вычисления. Затем она приступает к описанию программы.
Эта программа вызвала восторг Бэббиджа, он не жалел хвалебных слов для ее автора, и они были вполне заслуженными. Поддержка и теплые слова укрепляли уверенность Ады и давали ей силы для работы. Успехи давались ей с большим напряжением и не без ущерба для здоровья, на что она неоднократно жалуется в письмах Бэббиджу. Лавлейс хотелось, чтобы эта и последующие работы, о которых она мечтала, могли как-то связываться с ее именем. Поэтому Ада решает под каждым примечанием поставить свои инициалы.
Чарльз Бэббидж
ax0 + bx1 + cx2 + dx3 +… + kx9 = p,
a1x0 + b1x1 + c1x2 + d1x3 +… + k1x9 = p1,
…….
a9x0 + b9x1 + c9x2 + d9x3 +… + k9x9 = p9,
"Примечания" Лавлейс заложили основы современного программирования, базирующегося на тех идеях и принципах, которые были ею высказаны. Одним из важнейших понятий программирования служит понятие цикла. Лавлейс полностью осознала значение цикла — использование циклических вычислительных методов является одним из простейших и эффективнейших методов, облегчающих использование вычислительных машин. Поэтому она уделяет весьма много внимания циклам в своей работе. Ей принадлежит определение цикла: "Под циклом операций следует понимать любую группу операций, которая повторяется более одного раза". Организация циклов в программе значительно сокращает ее объем. Без такого сокращения практическое использование Аналитической машины было бы нереальным, т. к. она работала с перфокартами, и требовалось бы огромное их количество для каждой решаемой задачи. Для иллюстрации эффективности использования циклов Лавлейс приводит в качестве примера решение системы 10 линейных уравнений с 10 неизвестными:
Прежде всего, уже в то время Ада Лавлейс отдавала себе полный отчет в колоссальной "широте спектра" возможностей универсальной вычислительной машины. Вместе с тем она очень четко представляла себе границы этих возможностей: "Желательно предостеречь против преувеличения возможностей Аналитической машины. Аналитическая машина не претендует на то, чтобы создавать что-то действительно новое. Машина может выполнить все то, что мы умеем ей предписать. Она может следовать анализу; но она не может предугадать какие-либо аналитические зависимости или истины. Функции машины заключаются в том, чтобы помочь нам получить то, с чем мы уже знакомы". В 1843 году, когда эти положения высказывались, Ада, конечно, не могла предвидеть, как разовьется и какие формы примет программирование спустя 120 лет.
В своей первой и, к сожалению, единственной научной работе Ада Лавлейс рассмотрела большое число вопросов, актуальных и для современного программирования.
Чуть позже Бэббидж вместе с супругами Лавлейс принялся за разработку и практическую проверку системы беспроигрышных ставок на бегах, рассчитывая таким путем добыть средства для продолжения работы над вычислительными машинами.
"Система" не оправдала надежд, проиграв довольно внушительную сумму, Бэббидж и граф Лавлейс отказались от участия в совершенствовании "системы". Но леди Ада, азартная и упрямая, продолжала играть. Она оказалась сильно втянутой в эту рискованную игру, истратив на нее все свои личные средства, причем ее супруг и не подозревал об этом. Более того, леди Ада оказалась в руках группы мошенников, которые шантажировали ее.
В начале пятидесятых годов Ада тяжело заболела. Летом 1852 года она уже не вставала с постели, а 27 ноября 1852 года Августа Ада Лавлейс скончалась в том же возрасте, что и ее отец. Согласно завещанию, она была похоронена рядом с могилой отца в семейном склепе Байронов в Ноттингемпшире.
- Ада Августа Лавлейс Дочь Байрона, первая программистка
- Грейс Мюррей Хоппер Мама и бабушка COBOL
- Алексей Андреевич Ляпунов Автор первых нотаций языков программирования
- Джон БЭКУС Создатель языка FORTRAN
- Андрей Петрович Ершов Выдающийся ученый в области программирования
- Джон Маккарти Отец искусственного интеллекта, автор языка LISP
- Джон Кемени и Томас Курц Создатели популярного языка BASIC
- Никлаус Вирт Автор языков PASCAL, MODULA, OBERON
- Кеннет Томпсон и Деннис Ричи Создатели операционной системы UNIX и языка С
- Гари Килдалл Автор первой операционной системы для микрокомпьютеров
- Алан Кэй Автор объектно-ориентированного языка SmallTalk и многооконного интерфейса
- Билл Гейтс Программистский миллиардер
- Питер Нортон Популярное имя среди программистов конца XX века
- ЭДСГЕР ДЕЙКСТРА "Смиренный" программист
- Бьорн Страуструп Создатель языка C++
- ЛИНУС ТОРВАЛЬДС "Могучий финн" и его операционная система Linux
- Сеймур Пейперт Теоретик компьютерного образования и автор языка LOGO
- Джеймс Гослинг Создатель языка JAVA
- Дональд Кнут Автор Библии программистов
- Ада Августа Лавлейс Дочь Байрона, первая программистка
- 3.2.4. Ошибки при задавании вопросов
- Задание a1 для исполнителя Робот
- 1.1. Информатика. Предмет информатики. Основные задачи информатики
- 2.5. Разработка технического задания на проведение детального анализа рынка при работе над инновационным проектом. Основ...
- Повторяющиеся задачи
- Модули констукторов заданий
- Постановка задачи
- 2.6. Термостабилизация режима каскада на биполярном транзисторе
- Отпуск товарно-материальных ценностей со склада
- 24.1. Расширение возможностей Панели задач
- Часть первая Наука о скрытых мотивах поведения