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

От математики к морю: кто такая Грейс Хоппер
Грейс Брюстер Мюррей родилась в Нью-Йорке 9 декабря 1906 года. С раннего детства она проявляла недюжинное любопытство: в семь лет она разобрала несколько будильников, чтобы понять, как они работают. В 1928 году Грейс окончила женский Вассар-колледж со степенью бакалавра по математике и физике, а затем поступила в Йельский университет, где в 1930 году получила магистерскую степень, а в 1934-м — докторскую по математике. Она стала одной из первых женщин в США, удостоенных такой степени.
После защиты докторской Хоппер вернулась в Вассар-колледж преподавать математику. Но затем началась Вторая мировая война, и в декабре 1943 года она вступила в Военно-морской резерв США. В июне 1944 года ее произвели в младшие лейтенанты и направили в Гарвардский университет — в отдел баллистических расчетов, где она должна была освоить программирование на электромеханическом компьютере Mark I. В 1946 году Грейс написала первое в мире руководство по программированию для компьютера — «Руководство по эксплуатации автоматического последовательного управляемого калькулятора».
Она была уволена в запас в 1946 году, а уже в 1949 году перешла в компанию Eckert-Mauchly Computer Corporation, где участвовала в разработке первого коммерческого компьютера UNIVAC I. С этого момента началась ее самая важная работа.
Эпоха единиц и нулей: как выглядело программирование до компилятора
В конце 1940-х — начале 1950-х годов программирование было занятием для аскетов. Компьютеры понимали только машинный код — последовательности двоичных чисел, которые напрямую управляли работой процессора. Каждая команда, каждое число, каждая операция требовали ручного перевода из человеческого алгоритма в бесконечные строки из нулей и единиц. Ошибка в одном бите — и программа не работает.
Программисты вынуждены были запоминать тысячи кодов операций, вручную вычислять адреса памяти и управлять каждой ячейкой данных. Это было медленно, мучительно и чревато ошибками. Программирование воспринималось как ремесло — набор трюков и уловок, доступных лишь посвященным.
Именно в этой среде Грейс Хоппер сформулировала главный вопрос: почему человек должен адаптировать свои инструкции к машине, а не наоборот? Она рассуждала так: если компьютер может выполнять арифметические операции, почему он не может выполнять операции с символами? Почему он не может распознавать буквы и слова как такие же команды, как и цифры? Для Хоппер это было очевидно. Для ее коллег — безумие.
Как Хоппер сделала компилятор, который никто не ждал
В начале 1950-х годов Хоппер работала над UNIVAC I. Задача, которую она поставила перед своей командой, была амбициозна: научить компьютер самостоятельно переводить команды в двоичный код и при необходимости обращаться к заранее подготовленной библиотеке подпрограмм. Она хотела создать программу, которая бы делала за программиста самую скучную часть работы — перевод алгоритма в машинный язык.
В 1952 году она представила первый в истории компилятор — программу A-0. Она могла переводить символический математический код в машинный язык. Хоппер назвала свое изобретение «компилятором» и фактически ввела этот термин в обиход. На конференции ACM в 1952 году она выступила с докладом под названием «Обучение компьютера».
Реакция коллег была скептической. Многие считали, что компьютеры не способны понимать что-либо, кроме чисел. Хоппер позже вспоминала, что ей говорили: компьютеры понимают только двоичный код, и все остальное — пустая трата времени. Но она продолжала настаивать. Она верила, что если компьютер может работать с числами, он может работать и со словами, ведь слова — это просто еще один вид символов, которые машина способна распознавать и преобразовывать.
Работа над компилятором продолжилась. В 1957 году под руководством Хоппер был разработан FLOW-MATIC — первый компилятор, который понимал команды на английском языке и был предназначен для обработки бизнес-данных. Это был прорыв. Вместо того, чтобы запоминать коды операций, программисты могли писать что-то вроде «COMPARE A AND B» или «ADD C TO D». Компилятор сам переводил эти команды в машинный код. FLOW-MATIC стал прямым предшественником COBOL.

COBOL: язык, который жив до сих пор
В 1959 году Министерство обороны США созвало конференцию, чтобы разработать единый язык программирования для бизнес-задач. В ней участвовали представители правительства, производителей компьютеров и академических кругов. Хоппер была одним из ключевых участников — и хотя она не была единственным создателем COBOL, ее влияние было огромным.
В основу нового языка лег FLOW-MATIC, разработанный командой Хоппер. Он был единственным действующим бизнес-ориентированным языком на тот момент. Именно его синтаксис и архитектура стали фундаментом для COBOL (Common Business-Oriented Language).
Хоппер участвовала в разработке языка, а также возглавила работы по его стандартизации для применения во флоте США. Она разработала валидационное программное обеспечение для COBOL и его компилятора. Благодаря ее усилиям язык стал единым стандартом для всех производителей компьютеров, что позволило программам, написанным на COBOL, работать на разных машинах.
Сегодня, спустя более чем 60 лет после создания, COBOL все еще жив. На нем работают банковские системы, страховые компании, системы бронирования авиабилетов и правительственные базы данных. Миллионы строк кода, написанных на COBOL, продолжают обслуживать критически важную инфраструктуру по всему миру. Хоппер заслуженно получила прозвище «Бабушка COBOL».
Путь к адмиральским погонам
Военная карьера Хоппер была не менее выдающейся, чем научная. В 1946 году она была уволена в запас, в 1966-м вышла в отставку. Но ее работы были столь важны, что уже через несколько месяцев, в августе 1967 года, ее вернули на службу, чтобы она возглавила стандартизацию COBOL для Военно-морского флота США. Ей было 60 лет.
Грейс прослужила еще 19 лет! В 1973 году получила звание капитана, а в 1985 году, в возрасте 79 лет, была произведена в контр-адмиралы, став первой женщиной-адмиралом во флоте США. Она вышла в отставку в августе 1986 года в возрасте 79 лет, став самым старым действующим офицером во флоте.

Даже после отставки Хоппер не остановилась. Она устроилась консультантом в компанию Digital Equipment Corporation и продолжала работать в компьютерной индустрии. Как она сама говорила, если бы перестала работать полностью, ей стало бы скучно.
Неумирающее наследие
Грейс Хоппер ушла из жизни 1 января 1992 года в Арлингтоне, штат Виргиния. Ее похоронили на Арлингтонском национальном кладбище.
Вклад Грейс в компьютерную науку невозможно переоценить. Она внесла множество базовых понятий, без которых невозможно представить современное программирование: библиотеки подпрограмм, относительную адресацию, мнемонические обозначения. Она первая описала процесс компиляции и создала первый работающий компилятор. Она разработала первый язык для обработки бизнес-данных на английском языке и стояла у истоков COBOL.
За свою жизнь Хоппер получила множество наград. В 1969 году Ассоциация по обработке данных назвала ее первым «Человеком года» в области компьютерных наук. В 1991 году она стала первой женщиной, получившей Национальную медаль технологий США. В 1997 году в ее честь был назван эсминец USS Hopper.
Она также известна тем, что популяризировала термин «отладка» (debugging) — после того, как в 1947 году в реле компьютера Mark II нашли мотылька, который вызвал сбой. Хотя автором термина была не она, именно она помогла сделать его общеупотребительным.
И наконец, ее знаменитая фраза о том, что проще попросить прощения, чем разрешения, стала девизом для многих поколений программистов и инноваторов. Эту философию она исповедовала всю свою жизнь — в том числе и тогда, когда тайком от начальства создавала первый компилятор.
Заключение
Грейс Хоппер была тем человеком, который в самый ранний период компьютерной эры задал правильный вопрос: зачем мы должны говорить на языке машин, если машины можно научить говорить на нашем? Этот вопрос определил все дальнейшее развитие индустрии.
Ее подход — не ждать разрешения, а делать и показывать, сработал. Компилятор, который она создала вопреки скептицизму, стал фундаментом, на котором выросло все современное программирование. Языки высокого уровня, которые сегодня кажутся очевидными, берут начало в ее упрямстве и нежелании мириться с неудобством.
Возможно, главный урок ее истории в том, что важность работы не всегда очевидна современникам. Компилятор казался бесполезной игрушкой, пока не стал необходимым инструментом. COBOL казался слишком простым, пока не оказалось, что на нем можно строить системы, работающие десятилетиями. Хоппер не дожила до бума искусственного интеллекта и облачных технологий, но ее идея о том, что машины должны подстраиваться под людей, сегодня актуальна как никогда.
