Автор: Иван Васильев
Когда речь заходит об участии женщин в развитии компьютерной индустрии, то неизменно всплывают два имени — Ада Лавлейс (Augusta Ada King Byron, Countess of Lovelace) и Грейс Мюррей-Хоппер (Grace Murray Hopper). Первая жила в XIX веке, вторая — в ХХ веке. Несмотря на такую временную разницу, у этих женщин много общего. Обе они родились в декабре и посвятили свою жизнь изучению возможностей вычислительной техники, заложив попутно основы программирования
Лавлейс (урожденная Байрон) родилась 12 декабря 1815 года. Она являлась дочерью самого Джорджа Гордона Байрона — великого английского поэта. К сожалению, союз Байрона с матерью Ады, Аннабеллой Милбэнк, оказался непрочным. В январе 1816 года поэт покинул свою семью навсегда.
Впрочем, быть может, отсутствие отца-поэта помогло Аде развить совершенно иные способности — математические. Они обнаружились у девушки довольно рано. Совершенствовать знания Лавлейс помогал профессор, видный английский ученый Август де Морган. Он также являлся большим поклонником эзотерической нумерологии, т.е., проще говоря, давал цифрам магические толкования.
Но главную роль в жизни Ады сыграл Чарльз Бэббидж (Charles Babbage). Это он создал так называемые "разностную" и "аналитическую" машины — прообразы современных ЭВМ. Не будь этих машин — не было бы попытки Лавлейс дать им некое подобие языка программирования, чтобы те могли вычислять, выполняя написанные человеком задания.
На машинах Бэббиджа стоит остановиться подробнее. Работа по созданию "разностной" машины (Difference Engine) началась в 1822 году. Бэббиджа поддержало правительство, так что с финансированием проблем не наблюдалось. Понятно, что в то время не существовало ни реле, ни вакуумных ламп, на которых строились ранние компьютеры первой половины прошлого века. Поэтому даже страшно представить, какую сложную конструкцию имела "разностная" машина, собираемая из огромного числа деревянных, стальных и медных деталей, а также часовых механизмов. Кроме того, требовалась масса одинаковых компонентов, для чего приходилось создавать технологию их производства — это также замедляло процесс создания машины.
Говоря точнее, Difference Engine задумывался как очень сложный арифмометр. Титаническое строительство Difference Engine длилось 12 лет, пока государство в лице влиятельных чиновников и ученых мужей не наложило на проект вето. Причина отказа финансирования была проста — машина Бэббиджа была еще далека от завершения, а потому вера в нее угасла. Однако тот самый 1834 год стал не только концом первой версии Difference Engine. В этом памятном году в мастерскую Бэббиджа, среди прочих, пришла Ада Лавлейс, сопровождаемая женой профессора Огастеса де Моргана (Augustus de Morgan), Мэри Сомервиль (Mary Somerville). Позднее миссис де Морган так вспоминала встречу Лавлейс и "разностной" машины: "Пока часть гостей смотрела в изумлении на это устройство с таким чувством, с каким дикари первый раз видят зеркальце или слышат выстрел из ружья, мисс Байрон, совсем юная, сумела понять работу машины и оценила большое достоинство ее изобретения".
В общем, Лавлейс была без остатка захвачена передовой вычислительной техникой своего времени, пусть даже и в незавершенном виде. Ведь еще существовали чертежи, рисунки и письменные описания — то, что осталось вместо предполагаемой "аналитической" машины (Analytical Engine), которую Бэббидж так и не построил. Однако мощь этой машины поражала современников, да и самого создателя тоже. Чарльз Бэббидж записал в 1835 году: "Шесть месяцев я составлял проект машины, более совершенной, чем первая. Я поражен той вычислительной мощностью, которой она станет обладать, еще год назад я не смог бы в это поверить".
В том же году Ада вышла замуж за лорда Уильяма Кинга. Позднее он стал графом Лавлейс, так, собственно Ада Байрон превратилась в Аду Лавлейс. Впрочем, не это главное. Самым важным было то, что молодая женщина середины XIX века вплотную занялась изучением "аналитической" машины Чарльза Бэббиджа. Оформить мысли и соображения по поводу этой удивительной машины Лавлейс помог удобный случай. Она взялась за перевод эссе итальянца Луиджи Менабреа (Luigi Federico Menabrea), преподавателя Туринской артиллерийской академии, под названием "Очерк аналитической машины, изобретенной Ч. Бэббиджем". Тема была настолько близка Аде, что та не смогла удержаться от написания примечаний. Эти "сноски на полях" и принесли Лавлейс бессмертие. К слову, труд Менабреа был написан по-французски, и родился он после посещения Турина Бэббиджем, который в 1840 году читал там лекции.
Итак, что же это были за примечания? В одном из писем Бэббиджу, датированном 10 июля 1843 года, Лавлейс написала: "Я желаю вставить в одно из моих примечаний кое-что о числах Бернулли в качестве примера того, как неявная функция может быть вычислена машиной без предварительного решения с помощью головы и рук человека". В общем, примечания Лавлейс вполне годились в качестве учебника по программированию. В них содержались понятия "рабочая ячейка" и "цикл", имелось определение связи рекуррентных формул с циклическими процессами вычислений, описаны базовые принципы алгоритмизации и даже содержались готовые программы. Не случайно, впоследствии Бэббидж называл Лавлейс не иначе как "мой дорогой Интерпретатор".
Безусловно, гениальные выкладки Ады не смоли бы появиться без не менее гениальной машины Бэббиджа, в основу которой были положены фундаментальные принципы, нашедшие позднее свое применение в ХХ веке. "Аналитическая" машина Бэббиджа состояла из трех главных компонентов: "мельницы" (mill) — так Бэббидж называл арифметическое устройство, "хранилища" (store) — памяти в современном понимании этой части компьютеров и "управляющего барабана" (control barrel). Кроме того, машина Бэббиджа использовала регистры, а также могла запоминать промежуточные результаты вычислений. Данные вводились путем установки карт, информация на которые наносилась путем пробития отверстий. Позже такие карты стали именоваться перфокартами.
Возвращаясь к примечаниям Лавлейс (которые, между прочим, по объему превзошли комментируемый текст Менабреа), стоит добавить, что в них Ада высказала несколько провидческих положений. Например, леди Лавлейс предвидела, что вычислительная машина годится не только для освобождения людей от рутинной работы, но и для решения задач, фактически неподвластных человеку из-за своей сложности и масштабности. Кроме того, применение будущих компьютеров Лавлейс видела в таких сферах, как музыка, живопись и прочих областях человеческой жизнедеятельности: "Суть и предназначение машины изменятся от того, какую информацию мы в нее вложим. Машина сможет писать музыку, рисовать картины и покажет науке такие пути, которые мы никогда и нигде не видели".
Труд Лавлейс — перевод плюс примечания — опубликовал в августе 1843 года научный журнал "Ученые записки" (Scientific Memoirs). В то время женщины не баловали ученую публику своими изысканиями, потому Ада решила скрыться за инициалами А. А. L., которые, впрочем, были вполне "говорящими".
Умерла Ада Лавлейс в довольно молодом возрасте — в неполные 37 лет, 27 ноября 1852 года. Похоронили Аду в семейном склепе Байронов, рядом со знаменитым отцом. Однако сегодня, пожалуй, молодое поколение заинтересуется скорее жизненным путем Ады, нежели судьбой и творчеством ее отца. Что ж, цифровой век диктует свои законы, к написанию которых в немалой степени оказалась причастна одна очаровательная женщина — леди Ада Августа Лавлейс.
Грейс Мюррей-Хоппер родилась 9 декабря 1906 года в Нью-Йорке (США). При рождении ей дали имя Грейс Брюстер Мюррей.
Как и в случае с Адой Лавлейс, у Грейс с детства проявились математические способности и страсть к механизмам. Как-то в семилетнем возрасте Грейс решила разобрать часы, чтобы узнать принцип их работы. Разумеется, обратно собрать разобранные часы не удалось. Стоит также отметить, что склонность к точным наукам Грейс унаследовала от родителей. Ее мать, Мэри Кэмпбелл Хорн Мюррей, увлекалась геометрией, а отец, Уолтер Флетчер Мюррей, был преуспевающим страховым агентом.
В 1928 году Грейс Мюррей закончила колледж Вассар. Молодая женщина получила степень бакалавра математики и физики, а также почетный диплом академического общества "Phi Beta Kappa". В 1930 году Грейс стала магистром математики Йельского университета. С 1931 года началась ее преподавательская деятельность в Вассаре. Грейс даже удалось выйти замуж (за Винсента Фостера Хоппера, преподавателя английского языка из Нью-Йорка), однако этой женщине явно было предначертано посвятить всю свою жизнь электронно-вычислительной технике, а не семье — в 1940 году бездетные супруги Хоппер развелись.
Впрочем, Грейс Мюррей-Хоппер так бы и осталась в "чистой" науке, если бы не Вторая мировая. Грейс очень сильно захотелось поступить на армейскую службу, дабы верой и правдой послужить родине в непростое военное время. Видимо, еще свежи были ее детские воспоминания о деде по материнской линии, который в отставке щеголял в форме контр-адмирала. Так что Грейс решила поступить на службу в Военно-морской флот США. Ее долго не хотели брать, и даже нашли существенную причину для отказа — хрупкая Грейс весила меньше требуемого, не дотягивая даже до 40 килограммов. Но упорство этой женщины сломило все преграды, и специальным разрешением ей позволили принять присягу.
Конечно, Грейс не отправили на фронт. Ее, как особо ценный кадр, отослали в бюро артиллерийских вычислительных проектов Гарвардского университета, которым руководил профессор Говард Айкен (Howard Aiken). Там-то и произошла встреча Грейс Мюррей-Хоппер с одним из первых компьютеров — Mark I.
Mark I был настоящим 5-тонным монстром, состоящим из более чем 700 тысяч элементов. По сравнению с ним миниатюрная Грейс должна была ощущать себя пигмеем, но Хоппер быстро "приручила" железного гиганта. Так Грейс стала программистом, причем далеко не последним.
В то время, в отсутствии языков программирования, операционных систем и прочего ПО, создавать программы было делом долгим и нудным. Тем более, что от Mark I и ему подобных ЭВМ требовалось не вывести на экран сакраментальную фразу "Hello, World!", а произвести сложные расчеты (баллистические, к примеру). И тут за дело взялась Хоппер. Сначала она собрала библиотеку так называемых "подпрограмм" — часто используемых, повторяемых блоков в разных программах. Тем самым, при создании очередной программы, в нужное место просто вставлялись уже имеющиеся в коллекции Хоппер "подпрограммы". Это значительно ускоряло процесс работы.
"Баг" был прикреплен к странице бортового журнала
Оказалась Хоппер причастна и к появлению термина " debugging " ("отладка программы"). В жарком сентябре 1945 года в Гарварде уже работал компьютер Mark II. Окна комнаты, где находился персонал, не закрывали ввиду теплой погоды. В одно из этих окон залетел мотылек и погиб в реле за номером 70, закоротив контакты Mark II. Случилось сие знаменательное событие 9 сентября. В этот день мотылька вынули пинцетом и даже закрепили на странице бортового журнала. А когда Айкен зашел и спросил, чем занимаются Грейс и ее коллеги, те ответили, что, мол, очищают компьютер от насекомого (по-английски "bug" значит "насекомое").
В Гарварде Грейс Хоппер проработала до 1949 года. Затем она оказалась в одной из первых компьютерных компаний — Eckert-Mauchley Computer Corporation, где участвовала в создании программного обеспечения для компьютера UNIVAC 1. В этот период времени Хоппер усиленно занимается созданием компиляторов. Сам термин "компилятор" также предложен Хоппер. Она же предложила использовать некоторые английские слова в качестве символов, типа "add" ("добавить"), "compare" ("сравнить") и т.п. Вообще, одной из идей Хоппер было сделать язык программирования более похожим на обычный язык, тогда люди без специального технического образования могли бы также обучаться программированию.
В 1952 году она написала компилятор, который назывался A-0 — он выделял память компьютера и транслировал символический код в машинные команды. Через четыре года увидел свет компилятор B-0. Он также известен под названием FLOW-MATIC, его продавали вместе с компьютерами UNIVAC I и UNIVAC II как ПО для обработки коммерческих приложений.
FLOW-MATIC оказал большое влияние на дальнейшее развитие языков программирования. В частности, на знаменитый COBOL (Common Business Oriented Language), в создании которого принимали участие люди из команды Грейс Мюррей-Хоппер. Сама "бабушка КОБОЛа", как после иногда называли Грейс, принимала участие в собраниях по выработке спецификации этого языка.
Пожалуй, успешная работа над компиляторами и участие в стандартизации языка COBOL стали для Грейс Мюррей-Хоппер вершинами ее деятельности в компьютерной индустрии. Хотя и последующие годы выдались для этой несгибаемой женщины необычайно насыщенными. Подумать только, лишь в 1985 году ее отправили в отставку в звании контр-адмирала!
Вплоть до своей смерти 1 января 1992 года Грейс Мюррей-Хоппер являлась живой легендой. Она очень любила общаться с молодежью. Ее лекции всегда были яркими и запоминающимися, как и жизнь самой Грейс.
P.S. Каким то мистическим образом, в 70-х годах прошлого века военная тематика объединила двух великих женщин — Аду Лавлейс и Грейс Мюррей-Хоппер. Министерство обороны США объявило конкурс на лучший язык программирования высокого уровня. Победителем в мае 1979 года был признан язык Ада, названный в честь Ады Лавлейс. Его предложила компания Honeywell, руководимая Жаном Ишбиа (Jean Ichbiah). Финальная спецификация языка Ада состоялась в феврале 1983 года. "Предком" Ада является язык программирования Паскаль.
Когда речь заходит об участии женщин в развитии компьютерной индустрии, то неизменно всплывают два имени — Ада Лавлейс (Augusta Ada King Byron, Countess of Lovelace) и Грейс Мюррей-Хоппер (Grace Murray Hopper). Первая жила в XIX веке, вторая — в ХХ веке. Несмотря на такую временную разницу, у этих женщин много общего. Обе они родились в декабре и посвятили свою жизнь изучению возможностей вычислительной техники, заложив попутно основы программирования
Августа Ада Лавлейс
Грейс Мюррей-Хоппер
"Баг" был прикреплен к странице бортового журнала
- Обсудить материал в конференции
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.