От кодов к языку
Первая попытка облегчить участь программистов была сделана в 1948 году. Алан Тьюринг и Макс Нейман в Манчестере (Англия) вели работы по созданию компьютера, аналогичного американскому и, кстати, получившему то же название - Mark-1. Для него была создана так называемая система "сокращенного кодирования" - первый язык высокого уровня. Изначально задуманные 32 машинные команды - длинной пять байтов каждая - для удобства получали буквенные обозначения. Однако затем длина команд была увеличена до шести байтов, и в результате многие преимущества новой системы были сведены на нет: каждая команда обозначалась уже двумя символами, но для сокращения избыточности второй из них одновременно оказывался началом следующей команды. С помощью телетайпа производилось двоичное кодирование и создавалась перфолента.
Следующим шагом было "короткое кодирование". У Джона Мочли, работающего над созданием компьютера UNIVAC, возникла идея научить компьютер воспринимать алгебраические уравнения в их традиционном виде. Затем специальная программа-интерпретатор переводила уравнение на язык нулей и единиц. В полной мере реализовать этот замысел не удалось, потому что знаки математических действий по-прежнему приходилось заменять на их численные коды. Интерпретаторы стали первой попыткой сделать компьютер более дружественным, но интерпретирующая программа пожирала и без того скудные ресурсы памяти и замедляла выполнение программ. Да и целесообразность интерпретации введенной с перфокарт программы выглядит, вообще, говоря, сомнительно.
Вот этот "интерпретатор" и навел Грэйс Хоппер (которая работала в фирме Джона Мочли на мысль, что для общения человека с компьютером есть более приятный способ, чем кодирование. Однако нужно ли было такое "очеловечивание" компьютера? В какой-то момент Грэйс заметила, что программисты постепенно изолируют себя от остального человечества и начинают мыслить в тех же терминах, что и счетные машины. Толчком, как утверждают, послужили собственные проблемы Грэйс при подведении баланса ее банковского счета: по привычке она попыталась произвести сложение и вычитание в восьмеричной системе исчисления, и очень удивилась, когда ее итог не совпал с тем, что получилось у банка.
К 1952 году из "сокращенного кодирования" вырос первый компилятор - язык Autocod, созданный Алексом Гленном.
Хотя программисты, оберегая свое исключительное положение при вычислительной машине, всячески сопротивлялись распространению языков типа Autocod, фирмы-производители, пытавшиеся вывести компьютеры за пределы военных и университетских лабораторий, вкладывали в создание новых языков значительные средства.
Компания Raimington Rand, купившая права на UNIVAC, натолкнулась на нехватку "жрецов в белых халатах", свободно "чирикающих" на двоичном коде, поэтому процесс общения с машиной надо было облегчить и включить в поставку компьютера программное обеспечение. Возникла идея создания библиотеки подпрограмм, из которой программа-компоновщик (компилятор) выбирала бы необходимые блоки и автоматически устанавливала нужную адресацию. В 1951 г. Грэйс Хоппер было поручено создать такую библиотеку. Несколько лет спустя, когда ею была реализована уже четвертая версия компилятора A (версия A-3), из маркетинговых соображений он был переименован в Math-Matic.
Пятидесятые годы были периодом активной разработки машинно-зависимых языков высокого уровня. В 1953 году вышли в свет два из них - Speedcoding фирмы IBM, который она разумно представила со своим новым компьютером IBM 701, и Vortex, созданный в Массачусетском институте. Vortex был первым языком, в котором символы вводились в их естественном виде. Он, однако, не был коммерческой разработкой и практически не распространился за пределы МТИ.
Основным признаком таких языков была краткость инструкций - пара символов либо цифровой код, так что по-прежнему для работы с машиной нужно было изучать "дельфиний" язык.
Использовать полноценные английские слова догадалась Грэйс Хоппер. Для того, чтобы облегчить компьютеру работу, в качестве базиса было принято, что все инструкции обладают значимыми первым и третьим символом. Остальные символы при анализе игнорировались. Грэйс, видя перспективность этого подхода к языкам программ, действовала на свой страх и риск. Когда в 1956 году компилятор B-0 был готов, ей оставалось извиниться за самоуправство и задним числом убедить начальника в перспективности нового подхода. Для пущей наглядности она преобразовала компилятор в трёхязычный, заставив его понимать инструкции на английском, французском и немецком языках. Этим она положила начало одному порочному направлению в программировании - переводу инструкций языка на программирования на национальные языки (забегая вперед, скажем, что впоследствии появились самые разнообразные версии языка Cobol - вплоть до китайской, где инструкции записывались с помощью иероглифов).
Как бы то ни было, после такой демонстрации цель - убедить начальство, что компьютер может понимать нормальные слова - была достигнута, и B-0, в миру Flow-Matic, был одобрен для коммерческой реализации.

