В развитие информатики немалый вклад внесла Грейс Хоппер: она работала над компилятором, который со временем получил название FLOW-MATIC. 1952 год повсеместно считается годом рождения первого компилятора. Но сделаем небольшое отступление, чтобы объяснить, что это такое.
В информатике различают машинный язык, который, если можно так выразиться, понятен компьютеру, и язык программирования, который используют программисты. Машинный язык проще, чем языки программирования, так как машина «глупа», но выполняет действия быстро, а программист намного «умнее», но выполняет действия медленнее. Компиляция — крайне трудоемкий этап: его смысл заключается в том, чтобы изложить процесс, придуманный человеком, так, чтобы компьютер его понял. В 1950 году Грейс Хоппер предвидела, что программы в будущем станут дороже аппаратного обеспечения. Она отстаивала свою точку зрения вопреки всеобщему скепсису, и время подтвердило ее правоту.
Работа Грейс Хоппер над компиляторами имела неожиданный результат: так как в информатике правят бал байты, состоящие из восьми бит, ей пришлось научиться проводить расчеты в восьмеричной системе счисления. Грейс овладела этой наукой в совершенстве и часто выполняла в ней обычные расчеты, например стоимости покупок в магазине. Она забыла десятичную систему счисления, рискуя при этом личными финансами.
Любой другой удовольствовался бы тем, что создал столь ценную программу, как компилятор, позволяющий компьютерам выплачивать зарплату и формировать счета, но не такова была Грейс Хоппер. Компьютеры стали не просто машинами, способными быстро выполнять арифметические действия, — они умели «мыслить» на языке математики и понимать пользователей. Грейс совершила еще один шаг вперед: рассказывают, что ей было неудобно работать с чековой книжкой и банковским счетом, и она попыталась сделать так, чтобы машина «понимала» английский язык — язык самой Грейс, язык бизнеса и большинства пользователей. В 1956 году ей удалось добиться того, что UNIVAC при помощи ее компилятора «понял» два десятка команд на английском языке. Так началось развитие языка COBOL. Чтобы четко определить его стандарты, в 1959 году был создан специальный комитет.
В 1966 году в силу возраста Грейс Хоппер была вынуждена уйти в отставку из военно-морских сил. Но не стоит думать, что ее история на этом заканчивается. ВМС предприняли бесчисленное множество попыток внедрить электронную систему выплат по огромной и запутанной системе расчетных листов. После неудачной попытки под номером 823 руководство выбросило белый флаг и попросило Грейс вернуться на службу — всего на шесть месяцев, чтобы покончить с этим кошмаром. Грейс вернулась на флот, решила проблему и больше не оставляла ВМС. Она еще много лет служила на флоте и выступала с лекциями. В 1973 году Грейс вышла в отставку в чине капитана.
В то время Хоппер направила все усилия на выработку дополнительных неофициальных стандартов для языков программирования FORTRAN и COBOL, которые позднее были утверждены в качестве образцов Национальным бюро стандартов. Смысл этих норм сводился к следующему: системы должны строиться с учетом их фактического использования и административных возможностей. Такие системы обходятся очень дешево и не нарушают работу уже имеющегося оборудования.
В 1983 году Грейс присвоили звание командующего эскадрой. В 1985 году это звание было упразднено и ему на смену пришло звание контр-адмирала. В 1986 году, когда Грейс окончательно оставила ВМС — только ВМС, но не работу, — ей исполнилось 80 лет. Хоппер была старейшим действующим офицером, и к ней относились как к живой легенде. Тогдашний президент США Джордж Буш-старший наградил ее медалью Министерства обороны «За выдающуюся службу» (к тому времени Грейс уже имела множество наград, но ни одна из них не могла сравниться с этой). Грейс Хоппер умерла 1 января 1992 года. Она была похоронена с воинскими почестями на Арлингтонском национальном кладбище.
В числе самых необычных почестей, которых она удостоилась, стал запуск в 1996 году миноносца, названного в ее честь. Менее масштабным, но столь же необычным стало присвоение ей премии «Человек года»: в 1969 году она стала первой женщиной — лауреатом премии «Человек года» (дословно «Man of the year», что также можно перевести как «Мужчина года»), присуждаемой Ассоциацией профессионалов индустрии информационных технологий. В 1991 году, незадолго до смерти, Хоппер получила высшую американскую награду в своей области — Национальную технологическую медаль.
О любви Грейс к инновациям слагались легенды: одна из ее передовых идей, впоследствии успешно реализованная, заключалась в том, что все суда должны управляться с помощью компьютеров. Также именно Хоппер принадлежит блестящее объяснение, что такое наносекунда. Как-то ее спросили, почему передача сигнала на дальние расстояния происходит не мгновенно. В ответ Грейс разрезала старый телефонный кабель на куски длиной 30 см и вуаля — именно такое расстояние проходит свет в вакууме за одну наносекунду. Сложно придумать более наглядное объяснение.
Афиша ежегодной конференции The Grace Hopper Celebration of Women in Computing («Женщины в информационных технологиях»). Роль женщин в информационных технологиях в США до сих пор остается непростой.
* * *
COBOL
COBOL — универсальный язык программирования, позволяющий давать компьютеру инструкции непосредственно на английском (или «почти» английском) языке. COBOL, созданный в 1960 году и предназначенный для использования преимущественно в сфере бизнеса, задумывался как универсальный язык для всех компьютеров (это означает, что программу на языке COBOL можно выполнить на любой ЭВМ, и автор программы уже не является единоличным владельцем своей идеи). Название языка, по американской традиции, представляет собой акроним: COBOL означает COmmon Business-Oriented Language — общий бизнес-ориентированный язык. Впрочем, историки утверждают, что слово COBOL происходит от названия двух его основных компонентов — компилятора FLOW-MATIC Грейс Хоппер и, скорее, второстепенной программы COMTRAN компании IBM. Некоторые называют Г рейс Хоппер бабушкой COBOL.
COBOL — настолько старый, широко применяемый и, прежде всего, надежный язык, проверенный не одну тысячу раз, что улучшенные его версии используются и сегодня, спустя более чем полвека. Он по-прежнему распространен в бизнес-приложениях, хотя порой используется неявно. Доказательства популярности COBOL можно найти и в кино: робот Терминатор, сыгранный Арнольдом Шварценеггером, «разговаривает» именно на COBOL.
Интерфейс Терминатора, на котором видно, как робот «разговаривает» сам с собой на языке COBOL.