Грейс Мюррей Хоппер Мама и бабушка COBOL
Грейс Мюррей Хоппер
Мама и бабушка COBOL
Если есть кто-то в компьютерном мире вообще и в истории языков программирования в частности, кто не нуждается в представлении, — это, конечно, капитан Грейс Хоппер…
Джин Саммит
Грейс Мюррей Хоппер
Слова, вынесенные в эпиграф, принадлежат Джин Саммит, одной из известных ученых в области программирования, автору многих книг по истории программирования. Для зарубежных специалистов по информатике эти слова неудивительны, однако нашим читателям имя Грейс Хоппер малоизвестно.
Более того, в некоторых переводах зарубежных книг по программированию ее фамилия (если она упоминалась) преподносилась читателю в мужском роде. (Исключение составляет прекрасный перевод книг "Software" и "Computer Languages".)
Попытаемся восполнить указанный пробел и осветить некоторые стороны жизни и деятельности удивительной женщины-программиста.
Грейс Мюррей Хоппер родилась в Нью-Йорке 9 декабря 1906 года в семье страхового агента Уолтера Флетчера. С детства она увлекалась не куклами (что обычно для девочек), а различными механическими устройствами — "машинками", как она их называла. В 1928 году она закончила с отличием колледж Вассара в Пугкигси и продолжила свое образование в Йельском университете. Здесь она в 1930 году получила степень магистра и в 1934 году — доктора философии по математике (опять же редкость для женщины). Затем, вернувшись в Вассар, она преподавала математику. В 1941 году Г. Хоппер прослушала несколько курсов в университете Нью-Йорка.
В декабре 1943 года, в самый разгар Второй мировой войны, она приняла присягу и в мае 1944 года поступила на службу в ВМФ США. Получив в июне 1944 года звание младшего лейтенанта, Г. Хоппер была включена в отдел ВМФ, который занимался разработкой программ для компьютера ASCC (Mark-1), детища Говарда Айкена.
Она вспоминает, что стала "третьим в мире программистом (наверно, первыми двумя она считала своих коллег — мичманов Роберта Кэмпбелла и Ричарда Блока. — А. Ч.) первого в мире большого цифрового компьютера".
И далее продолжает: "В те дни мы не назывались программистами. Это слово еще не дошло до нас из Англии, мы были кодировщиками". Однако самый маленький морской офицер (ее рост был 150 см и вес 47 кг) и ее коллеги-мичманы заложили в те годы фундамент здания с названием "программирование". Г Хоппер доказала, чего она стоит как программист. Впоследствии она писала:
Капитан второго ранга Грейс Хоппер
"Я имела то преимущество, что изучала как технику, так и математику и знала, как работает машина от начала и до конца. Конечно же, я была счастлива. Заканчивая в 1928 году колледж, я и не подозревала, что в 1944 году появится компьютер".
Вместе с Говардом Айкеном она опубликовала первое описание компьютера "Марк-1".
При работе на компьютере "Марк-I" Г. Хоппер и ее группой впервые были введены некоторые приемы, которые стали в дальнейшем широко использоваться в программистской практике. В частности, первыми инструментами, которые экономили труд программистов, были подпрограммы. Так вот, в августе 1944 года для "Марк-I" была написана первая подпрограмма для вычисления sin х. После нее последовали другие. "Мы стали писать подпрограммы", — вспоминала Г. Хоппер, хотя термин "подпрограмма" был введен позже (Морис Уилкс в Англии. — А. Ч.).
И еще одно фундаментальное понятие техники программирования впервые ввели Г. Хоппер и ее группа — "отладка". Причем случилось это при курьезных обстоятельствах. Жарким летним днем 1945 года неожиданно произошла остановка компьютера "Марк-I". Обнаружилась неисправность одного реле, контакты которого были заблокированы мотыльком, неизвестно каким образом туда попавшим. Вспоминает Г. Хоппер: "Когда к нам зашел офицер, чтобы узнать, чем мы занимаемся, мы ответили, что очищаем компьютер от насекомых (debuging). Термин "debuging" (отладка) с тех пор прижился и стал использоваться для обозначения поиска неисправностей в компьютере, особенно в программном обеспечении".
В 1949 году Г. Хоппер перешла на работу старшим математиком во вновь образовавшуюся фирму Маучли — Эккерта (создателей электронного компьютера ENIAC), где приняла участие в разработке программных средств коммерческого компьютера UNIVAC–I. Фирма располагалась в помещении старой фабрики на севере Филадельфии. "Когда машина UNIVAC–I не работала, мы, бывало, говорили, что не мешало бы ее выбросить за забор, на ту сторону, где была свалка, а самим махнуть на другую сторону — на кладбище", — вспоминала те годы Г. Хоппер.
Для облегчения процесса составления программ на машинном языке вместо записи команд в двоичной системе счисления (длинные серии единиц и нулей) в то время использовалась восьмеричная система счисления, запись в которой, как известно, в три раза короче двоичной, а взаимный переход от одной к другой формален. "Все в фирме были убеждены, что единственный способ писать эффективные программы — это пользоваться восьмеричной системой". Г Хоппер тоже освоила эту систему: научилась складывать, вычитать, умножать и делить в ней. Однако погружение в мир восьмеричной арифметики чуть было не стоило ей неприятностей в жизни, когда она подводила баланс своего банковского счета. (Выручил брат-банкир, напомнив ей, что банки все-таки работают с десятичной системой.) "Я столкнулась с проблемой жизни в двух мирах, — вспоминала Г. Хоппер, — вероятно, это было одной из причин, побудивших меня по возможности избавиться от восьмеричных чисел".
Надо заметить, что не одну Г. Хоппер занимала проблема облегчения труда программистов, работающих в машинных кодах. В 1949 году до ее прихода в фирму Джон Маучли создал систему под названием "Short Code", которая являлась примитивным языком программирования высокого уровня. В ней программист записывал решаемую задачу в виде математических формул, а затем, используя таблицу перевода символ за символом, преобразовывал эти формулы в двухлитерные коды. В дальнейшем специальная программа компьютера превращала эти коды в двоичный машинный код. Система, разработанная Дж. Маучли, была по существу одним из первых примитивных интерпретаторов, т. е. в последующие годы одним из двух типов транслятора. Эта система оказала большое влияние на Г. Хоппер. "Short Code" был первым шагом к чему-то такому, что давало программисту возможность писать программы на языке, отличном от машинного", — писала Г. Хоппер. Второй шаг предстояло сделать ей.
Немного отвлечемся и напомним читателю о двух типах трансляторов с позиций сегодняшнего дня. Первый тип, упоминаемый выше, — интерпретатор в каждый момент времени транслирует строку за строкой программу, написанную на языке высокого уровня, в программу на машинном языке и одновременно ее выполняет. Второй тип — компилятор транслирует весь текст программы, написанной на языке высокого уровня, в машинный код в ходе одного непрерывного процесса. При этом создается полная программа в машинных кодах, которую затем можно выполнить без участия компилятора. Работа компилятора состоит из трех этапов: сначала текст программы создается при помощи редактора текстов или другой программы текстовой обработки, затем текст компилируется, наконец скомпилированная программа выполняется. Разница между компилятором и интерпретатором аналогична разнице между переводчиком литературного произведения и переводчиком устной речи.
Итак, в 1951 году Г. Хоппер создала первый компилятор и ею же был введен сам этот термин. Компилятор Г. Хоппер осуществлял функцию объединения и в ходе трансляции производил организацию подпрограмм, выделение памяти компьютера, преобразование команд высокого уровня (в то время псевдокодов) в машинные команды. "Подпрограммы находятся в библиотеке (компьютера), а когда вы подбираете материал из библиотеки — это называется компиляцией" — так она объясняла происхождение введенного ею термина. Конечно, между компилятором, созданным Г. Хоппер, и сегодняшними сходство небольшое, но начало было положено. В 1952 году на одной из первых конференций Ассоциации компьютерной техники в Питтсбурге Г. Хоппер сделала доклад "The Education of a Computer", посвященный компилирующим программам.
В этот период фирму Маучли — Эккерта поглотила компания Remington Rand (как это часто бывает, талантливые изобретатели оказались неумелыми коммерсантами). Но Маучли, Эккерт и Хоппер остались работать в новой компании.
Свой первый компилятор Г. Хоппер назвала А-0, затем по мере его расширения и улучшения в последующие годы появились его версии А-1, А-2, А-3 (две последние системы базировались на трехбуквенных псевдокодах для указания математических операций). В 1954 году группа под руководством Г. Хоппер разработала систему АТ-3, включающую язык программирования и компилятор, которая в дальнейшем получила название MATH-MATIC и продавалась компанией Remington Rand вместе с компьютером UNIVAC–I.
После удачного завершения работ по созданию MATH-MATIC Г. Хоппер и ее группа принялись за разработку нового языка и компилятора, который позволил бы пользователям программировать на языке, близком к обычному английскому. Они выбрали около 30 английских слов типа: add (сложить), compare (сравнить), transfer (переслать) и т. п., а затем разработали компилятор, который транслировал программы, написанные на этом языке, в машинный код.
Для адекватного распознания компилятором выбранных слов Г. Хоппер придумала способ, который сохранился в операторах будущих языков: каждое слово (название оператора) содержит неповторимую комбинацию из первой и третьей букв, поэтому компилятор при генерации машинного кода может игнорировать все остальные буквы в слове.
Создание "необычного" (по тем временам) языка и компилятора, который получил название В-0, было завершено в 1956 году. Необходимость появления подобной системы Г. Хоппер объясняла следующим образом: "Существует много различных людей, которым нужно решать разные задачи. Некоторые из них связаны с обработкой символов, другие — с обработкой слов, и им нужны языки другого типа, а не наши попытки превратить их всех в математиков". Действительно, в дальнейшем язык с успехом использовался людьми, работающими в бизнесе, в конторах фирм и в правительственных учреждениях. В 1958 году система В-0 поступила на рынок с новым названием FLOW-MATIC и компания, в которой трудилась Г. Хоппер, поменяла свое название на Sperry Rand Соrр. В отличие от FORTRAN — языка для научных приложений, FLOW-MATIC был первым языком для задач обработки коммерческих данных. Он был проще FORTRAN, и опыт, приобретенный за годы работы с ним, привел к созданию универсального языка COBOL. Справедливости ради необходимо отметить, что и другие языки, но в меньшей степени, послужили основой COBOL: язык AIMACO, созданный в ведомстве ВВС США в 1958 году (в разработке этого языка принимала участие и группа Г. Хоппер), язык COMTRAN, созданный фирмой IBM в 1958 году, язык FACT, разработанный фирмой Honeywell (этот язык имел влияние на поздние версии COBOL).
Создание универсального, машинно-независимого языка высокого уровня для деловых применений и бизнеса стало очередной задачей, за разрешение которой в начале 1959 года взялась энергичная Грейс Хоппер. Она обратилась за поддержкой в Министерство обороны США, которое вскоре организовало конференцию по языкам программирования. Эта конференция, получившая в дальнейшем название КОДАСИЛ (CODASYL–Conference on Data Systems Language), организовала три группы по разработке нового универсального языка и Исполнительный комитет, осуществлявший контроль за разработкой. К осени 1959 года создание языка было завершено, и он получил имя COBOL (COBOL–Common Business Oriented Language). Одним из основных консультантов при создании языка была Грейс Мюррей Хоппер.
25-летний юбилей COBOL (на переднем плане — Грейс Хоппер)
Курьезный случай (и в то же время неожиданная реклама COBOL) произошел с Г. Хоппер во время ее посещения компьютерного центра в Японии. Гостеприимные японцы никак не могли понять ее просьбу, пока она не обратилась к операторам COBOL. "Move (переместить), — сказала она, показывая на себя, — goto (перейти к) отель "Осака". После чего японцы сразу отвезли ее в гостиницу.
В 1967 году Хоппер вернулась на действительную службу в ВМФ и к 1980 году стала капитаном Управления вычислительной техники в Вашингтоне. В 1983 году она получила звание капитана первого ранга, а в ноябре 1985 года — звание контр-адмирала. В 1982–1986 годах она была старейшим действующим офицером американской армии. После отставки из армии в 1986 году она еще некоторое время работала консультантом фирмы DEC.
В начале января 1992 года из Америки пришло сообщение (Newsbytes News Network, January, 3, 1992): "Недалеко от Вашингтона в возрасте 85 лет после продолжительной болезни скончалась Грейс Мюррей Хоппер, одна из изобретателей языка COBOL". Хоппер начала работать с компьютерами с конца 40-х годах. Она участвовала в работе над "Марк-I", "Марк-II", "Марк-III" и UNIVAC–I. Ее часто называли Мамой COBOL и Бабушкой COBOL…"
Заслуги Г. Хоппер в программировании оценены по достоинству. Более 40 университетов и колледжей присвоили ей различные звания. Г. Хоппер была обладательницей первой награды по информатике "Человек года", присуждаемой Ассоциацией управления и обработки данных. На церемонии отставки в 1986 году в Бостоне на борту авианосца морской министр Джон Леман-младший представил адмирала Грейс Хоппер к правительственной награде. Через несколько лет после ее кончины, 6 сентября 1997 года был спущен на воду новый эсминец ВМФ США — он был назван "Хоппер" в честь контр-адмирала Грейс Мюррей Хоппер.
Автор одной из первых книг по проектированию компиляторов (1971 год) профессор Корнеллского университета Дэвид Грис, оценивая значимость работ Г. Хоппер, пишет, что в ее наследии имеются "наметки многих инструментов и способов в отношении компиляторов, которые в настоящее время считаются общепризнанными: библиотека подпрограмм, дополненная спецификациями, трансляция формул в их элементарные компоненты; первичные функции компилятора; подпрограммный интерфейс и относительная адресация; компонующий загрузчик и оптимизация текста программы". И далее продолжает: "Она одной из первых поняла, что именно программные средства, а не аппаратные потребуют большего числа затрат. Она предвидела тот день, когда для математиков уже не будет необходимым знание системы команд компьютера… Хоппер предвосхитила символьную обработку и хорошо понимала, что произойдет даже в отношении искусственного интеллекта (хотя в то время этого термина еще не существовало. — А. Ч.), когда говорила: "В настоящее время задача состоит в том, чтобы в наиболее возможной степени заменить человеческий мозг на электронный цифровой компьютер".
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
ХОППЕР ГРЕЙС МЮРРЕЙ
ХОППЕР ГРЕЙС МЮРРЕЙ (урожденная Мюррей Грейс Брюстер)(род. в 1906 г. – ум. в 1992 г.) Знаменитый американский математик, пионер компьютерных технологий, создательница языка программирования КОБОЛ и первого коммерческого электронного компьютера UNIVAC-1, обладательница
Как Мама испугалась
Как Мама испугалась Кто сердцем искренне верит в Бога, тот и в черта верит. И как ни хитри, ни лукавь, а черт бок о бок ходит с Господом Богом. Вот.Мама не токмо верит в Бога, а вся ее чистая душа в этой вере живет, и потому ее спугнуть так же жалко, как неоперившегося птенчика. И
Грейс Келли – светлый ангел Монако
Грейс Келли – светлый ангел Монако Более 50 лет прошло со дня свадьбы князя Монако Ренье III и голливудской звезды Грейс Келли. Уже 28 лет, как Грейс нет в живых, но жители этого маленького государства до сих пор вспоминают о ней с благодарностью. Превращение молодой
Одесса-мама
Одесса-мама Истоки Троцкого, начала его биографии изучены меньше, чем происхождение Ленина и Сталина. Да и было оно вроде бы наиболее прозрачным из всех — как есть «умный еврей». Но по-своему тоже неординарным.Если, например, Каменев (Розенфельд) и Зиновьев (Апфельбаум)
"МАМА, КТО ЭТИ ТЕТИ?.."
"МАМА, КТО ЭТИ ТЕТИ?.." В тот весенний вечер сорокалетний инженер Игорь Израилевич Злоцкий, бывший сотрудник московского Гипрокино, вышел на улицы Тель-Авива в далеко не отличном настроении. Только что ему объявили, что утром он должен отправиться в город Натанья для
«Мама, мы же воюем»
«Мама, мы же воюем» «Район под Кандагаром — вотчина душманов. Кандагар — единственная провинция, где практически ни одна банда не перешла на сторону народной власти. Наоборот, случалось, подразделения афганской армии переходили на сторону мятежников», — так писали
«Мама, что со мной, мама?»
«Мама, что со мной, мама?» «Сколько же их погибло, мальчишек. Для каждой семьи это огромное несчастье. Но наше горе… Как?то уж очень несправедливо распорядился Всевышний», — пишет нам сестра Алексея Лобанова Любовь Михайловна Огородникова.Ей вторит мама, Раиса Федоровна:
ПРЕДЧУВСТВИЕ ПРИНЦЕССЫ ГРЕЙС
ПРЕДЧУВСТВИЕ ПРИНЦЕССЫ ГРЕЙС По отзывам знавших ее людей, принцесса княжества Монако Грейс обладала способностями ясновидящей и даже предчувствовала свою смерть.В 1980 г., за два года до гибели в автомобильной катастрофе, принцесса Грейс посетила Институт парапсихологии
Хоппер Грейс Мюррей (урожденная Мюррей Грейс Брюстер) (род. в 1906 г. – ум. в 1992 г.)
Хоппер Грейс Мюррей (урожденная Мюррей Грейс Брюстер) (род. в 1906 г. – ум. в 1992 г.) Знаменитый американский математик, пионер компьютерных технологий, создательница языка программирования КОБОЛ и первого коммерческого электронного компьютера UNIVAC-1, обладательница
Мама ведет семью
Мама ведет семью Вернемся в 1923 год.После ухода моего отца материальное положение нашей семьи, естественно, ухудшилось, хотя Степан Васильевич помогал деньгами на мое воспитание и много-много раз дополнительно выручал при безвыходном положении: в таких случаях мама сама,
Мама и мы, ее дети
Мама и мы, ее дети Человек добрейший и отзывчивый, наша мама во многих жизненных вопросах была совершенно беспомощна и наивна; будучи сама душевно чистой, бескорыстной и правдивой, она верила людям, и «обвести ее вокруг пальца», обмануть не составляло большого труда.Нас,
МАМА
МАМА Незаметно и тихо вернулась мама. Целовать нас не стала, только прижала к себе меня и Тоню да по головке погладила. Слезы падали нам на волосы.– Я ведь заблудилась в бараке, едва нашла вас, – говорила она сиплым голосом.Тетя Сима и бабушка обняли ее, но ни о чем не
Мама
Мама 27 июля 2012 годаСтенограмма эфира радио «Голос России»Беседовала журналист Милена Фаустова[1]В июле 2012 года на фасаде здания Смоленского Государственного университета появилась ещё одна мемориальная доска. Она посвящена педагогу Татьяне Николаевне Щипковой,