Говард Айкен и Грейс Хоппер (1906–1992) с фрагментом разностной машины Бэббиджа в Гарварде, 1946 г
Справа: Джин Дженнингс (1924–2011), 1945 г. и Бетти Снайдер (1917–2001), 1944 г
Внизу: Джин Дженнингс и Фрэнсис Байлас с машиной ENIAC
Глава 3
Программирование
До появления современного компьютера оставался еще один важный шаг. Все машины, построенные во время войны, проектировались, по крайней мере на начальном этапе, для выполнения конкретной задачи, например для решения уравнений или расшифровки кодов. Настоящий компьютер, как он виделся Аде Лавлейс, а затем Алану Тьюрингу, должен был уметь легко и быстро выполнять любую логическую операцию. Это потребовало создания машин, работа которых определялась бы не только их hardware (аппаратным устройством), но и software, то есть программным обеспечением — набором команд, по которым эти машины могли работать. Тьюринг изложил эту концепцию совершенно ясно. «Нам не нужно бесконечного количества различных машин, решающих различные задачи, — писал он в 1948 году. — Достаточно одной. Инженерная задача конструирования различных машин для выполнения различных задач заменяется интеллектуальной работой по „программированию“ универсальной машины для выполнения всех этих задач»<sup></sup>.
Теоретически такие машины, как ENIAC, могут быть запрограммированы на разные задачи и даже сойти за машины общего назначения. Но на практике загрузка новой программы была трудоемким процессом и часто требовала переключения вручную кабелей, связывающих различные блоки компьютера. Машины военного времени не могли мгновенно переключаться с программы на программу, как это делают современные компьютеры. И для создания современного компьютера потребовался следующий гигантский шаг: выяснить, как сохранять программы внутри электронной памяти машины.
Грейс Хоппер
Начиная с Чарльза Бэббиджа, мужчины, конструировавшие компьютеры, сосредотачивались в первую очередь на аппаратном устройстве. Но во время Второй мировой войны в процесс развития вычислительных машин были вовлечены женщины, которые уже на начальной стадии поняли важность программирования, так же как раньше это поняла Ада Лавлейс. Они разработали способы кодирования инструкций, которые давали указания аппаратуре, какие операции выполнять. Именно в программном обеспечении заложены магические формулы, способные чудодейственным образом преобразить машины.
Самой колоритной из первых женщин-программисток была смелая и энергичная, но в то же время очаровательная и интеллигентная Грейс Хоппер, служившая офицером в ВМС США. Позже она работала с Говардом Айкеном в Гарварде, а затем с Преспером Эккертом и Джоном Мокли. Родилась Грейс Брюстер Мюррей в 1906 году в зажиточной семье, проживавшей в Верхнем Вест-Сайде на Манхэттене. Ее дед был инженером и брал ее с собой в поездки на топографические съемки в окрестностях Нью-Йорка, мать была математиком, а отец — страховым агентом. Она окончила Вассар, защитив диплом в области математики и физики, а затем поступила в Йельский университет, где в 1934 году получила докторскую степень по математике<sup></sup>.
Полученное ею образование было не так уж необычно, как можно было бы подумать. Она была одиннадцатой женщиной, получившей докторскую степень по математике в Йельском университете, первая получила степень в 1895 году<sup></sup>. Для женщины, особенно из процветающего семейства, в 1930 году получение докторской степени по математике не было такой уж редкостью. На самом деле, тогда это было более распространено, чем в следующем поколении. В 1930-х годах 113 американских женщин получили докторскую степень по математике, то есть на них пришлось 15 процентов от общего числа всех американских докторских степеней по математике, полученных за эти годы. |