Добавить в цитаты Настройки чтения

Страница 25 из 30

Теоретически такие машины, как ENIAC, могут быть запрограммированы на разные задачи и даже сойти за машины общего назначения. Но на практике загрузка новой программы была трудоемким процессом и часто требовала переключения вручную кабелей, связывающих различные блоки компьютера. Машины военного времени не могли мгновенно переключаться с программы на программу, как это делают современные компьютеры. И для создания современного компьютера потребовался следующий гигантский шаг: выяснить, как сохранять программы внутри электронной памяти машины.

Грейс Хоппер

Начиная с Чарльза Бэббиджа, мужчины, конструировавшие компьютеры, сосредотачивались в первую очередь на аппаратном устройстве. Но во время Второй мировой войны в процесс развития вычислительных машин были вовлечены женщины, которые уже на начальной стадии поняли важность программирования, так же как раньше это поняла Ада Лавлейс. Они разработали способы кодирования инструкций, которые давали указания аппаратуре, какие операции выполнять. Именно в программном обеспечении заложены магические формулы, способные чудодейственным образом преобразить машины.

Самой колоритной из первых женщин-программисток была смелая и энергичная, но в то же время очаровательная и интеллигентная Грейс Хоппер, служившая офицером в ВМС США. Позже она работала с Говардом Айкеном в Гарварде, а затем с Преспером Эккертом и Джоном Мокли. Родилась Грейс Брюстер Мюррей в 1906 году в зажиточной семье, проживавшей в Верхнем Вест-Сайде на Манхэттене. Ее дед был инженером и брал ее с собой в поездки на топографические съемки в окрестностях Нью-Йорка, мать была математиком, а отец — страховым агентом. Она окончила Вассар, защитив диплом в области математики и физики, а затем поступила в Йельский университет, где в 1934 году получила докторскую степень по математике2.

Полученное ею образование было не так уж необычно, как можно было бы подумать. Она была одиннадцатой женщиной, получившей докторскую степень по математике в Йельском университете, первая получила степень в 1895 году3. Для женщины, особенно из процветающего семейства, в 1930 году получение докторской степени по математике не было такой уж редкостью. На самом деле, тогда это было более распространено, чем в следующем поколении. В 1930-х годах 113 американских женщин получили докторскую степень по математике, то есть на них пришлось 15 процентов от общего числа всех американских докторских степеней по математике, полученных за эти годы. В 1950-х годах их было только 106 за десять лет, то есть 4 % от общего числа. (За первое десятилетие 2000-х годов ситуация стала более чем нормальной, и 1600 женщин, то есть 30 % от общего числа, получили докторские степени по математике.)

Выйдя замуж за профессора сравнительной литературы Винсента Хоппера, Грейс поступила на работу в Вассар и стала преподавать математику. В отличие от большинства преподавателей этого предмета она требовала, чтобы ее ученики умели письменно излагать мысли. Свой курс по теории вероятности она начинала с лекции об одной из своих любимых математических формул[18] и просила учеников написать эссе о ней. Этим она добивалась ясности в изложении и стиле. “Я могла испещрить их тексты [эссе] замечаниями, и поднимался бунт, они могли возмущаться, что это курс математики, а не английского, — вспоминала она. — Тогда я объясняла им, что нет смысла пытаться изучать математику, если они не могут общаться с другими людьми”4. На протяжении всей своей жизни она лучше всех справлялась с переводом научных задач (таких как нахождение траекторий, движение потока жидкости, динамика взрывов и погодных условий) в математические уравнения и с описанием их на обычном языке. Этот талант помог ей стать хорошим программистом.

К 1940 году Грейс Хоппер стало скучно. У нее не было детей, брак уже превратился в рутину, преподавание математики не настолько увлекало ее, как она надеялась. Она взяла на время отпуск в Вассаре и решила поучиться у известного математика Рихарда Куранта в Нью-Йоркском университете, сфокусировавшись на методах решения частных дифференциальных уравнений. Когда японцы напали на Перл-Харбор в декабре 1941 года, она все еще училась у Куранта. Вступление Америки во Вторую мировую войну предоставило ей шанс изменить свою жизнь, и она воспользовалась им: в течение следующих восемнадцати месяцев она бросила Вассар, развелась с мужем и в возрасте тридцати шести лет вступила в ВМС США. Ее послали в Школу мичманского резерва в колледже Смита в штате Массачусетс, и в июне 1944 года она окончила ее лучшей в своем классе, став лейтенантом Грейс Хоппер.

Она предполагала, что будет назначена в группу криптографии и кодирования, но, к ее удивлению, ей было приказано явиться в Гарвардский университет для работы на машине Mark I — исполинском цифровом компьютере с неуклюжими электромеханическими реле и поворотным валом, приводимым в движение моторчиком. Эта машина, описанная выше, была сконструирована Говардом Айкеном в 1937 году. К тому времени, когда Хоппер была прикомандирована к машине, машиной распоряжались ВМС; Айкен по-прежнему работал с ней, но уже как офицер ВМС, а не как профессор Гарварда.

Когда в июле 1944 года Хоппер приступила к исполнению своих обязанностей, Айкен дал ей копию мемуаров Чарльза Бэббиджа, повел показать Mark I и сказал: “Это вычислительная машина”. Некоторое время Хоппер просто молча на нее смотрела. “Все это выглядело как груда механизмов, издающих страшный грохот, — вспоминала она, — все было оголено, открыто и очень шумно”5. Понимая, что ей придется полностью в этом разобраться и научиться справляться с машиной, Хоппер ночи напролет изучала чертежи. Ее сильной стороной было умение понять, как перевести реальные задачи на язык математических уравнений (чем она занималась в Вассаре), а затем — в команды, которые машина сможет понять. “Я изучала терминологию, принятую в океанографии, во всех этих делах, связанных с разминированием, детонаторами, взрывателями дистанционного действия, в биомедицине, — рассказывала она. — Мы должны были выучить все их термины для того, чтобы иметь возможность решать их задачи. Я могла говорить о чем-то на сугубо техническом языке, а спустя несколько часов переключиться на совершенно другую лексику, говоря о том же с руководством”. Инновациям необходимы словесные формулировки.





Оценив умение Хоппер точно излагать мысли, Айкен поручил ей написать инструкцию, которая должна была стать первым в мире руководством по компьютерному программированию. Однажды он сказал, стоя рядом с ее столом:

— Ты должна написать книгу.

— Я не могу написать книгу, — ответила она. — Я еще ни одной не написала.

— Ну, ты сейчас в армии, — сказал он. — И ты сможешь ее написать6.

В результате появилась пятисотстраничная книга, которая и рассказывала об истории создания компьютера Mark I, и была руководством по программированию на нем7. В первой главе описывались счетные машины, построенные до него, в основном те, которые сконструировали Паскаль, Лейбниц и Бэббидж. На фронтисписе была картинка, изображающая часть разностной машины Бэббиджа, которую Айкен установил в своем кабинете, а в качестве эпиграфа Хоппер взяла фразу из книги Бэббиджа. Она поняла, как в свое время и Ада Лавлейс, что аналитическая машина Бэббиджа обладала особым свойством. И она, и Айкен надеялись, что этим же свойством будет обладать компьютер Mark I /Harvard (и это должно было отличать его от других современных ему компьютеров): как и непостроенная машина Бэббиджа, Mark I Айкена должен был уметь перепрограммироваться на новые инструкции, поскольку получал их с помощью перфокарт.

Каждый вечер Хоппер читала Айкену страницы, написанные за день, и он научил ее простому трюку, используемому хорошими писателями. Она рассказывала: “Он подсказал, что, если ты запинаешься, пытаясь прочитать какое-то место вслух, фразу лучше исправить. Каждый день я должна была прочитать ему пять страниц, которые я за этот день написала”8. Ее тексты стали простыми, емкими и понятными. Тесное сотрудничество Хоппер и Айкена напоминает нам сотрудничество Ады Лавлейс и Бэббиджа. Чем больше Хоппер узнавала об Аде Лавлейс, тем больше отождествляла себя с ней. “Она впервые написала цикл в программе, — говорила Хоппер. — И я никогда этого не забуду. Никто из нас никогда не забудет”9.

18

Формула Стирлинга для вычисления приближенного значения факториала n!. — Прим. автора.