Появление компьютеров, снабженных внутренней памятью и схемами обработки двоичных данных, вплотную подвело вычислительную науку к осознанию огромных возможностей подобных универсальных машин. Однако Алан Тьюринг и другие специалисты ясно понимали, что для большинства программистов общение с машиной на языке цепочек нулей и единиц (т. е. с помощью так называемого машинного кода, который является базовым языком компьютера) окажется достаточно трудным делом.
Первой попыткой облегчить программистскую долю можно считать разработанную Тьюрингом систему сокращенного кодирования, которая предназначалась для записи программ манчестерского «Марка-1». В этом коде для представления длинных строк двоичных нулей и единиц использовались комбинации телетайпных символов.
Буквы ТС, например, соответствовали комбинации нулей и единиц, которая трактовалась компьютером как команда сложения. Телетайп выдавал бумажную перфоленту, которая затем вводилась в компьютер.
Считывая комбинации пробивок как эквивалент нулей и единиц, машина переводила их в соответствующие последовательности импульсов высокого или низкого напряжения.
Использование телетайпа вместо переключателей, несомненно, явилось шагом вперед, хотя еще далеким от идеала. Алик Глени, один из манчестерских сотрудников Тьюринга, видел в сложных программах основное препятствие на пути совершенствования и широкого распространения машин за пределами научно-исследовательских лабораторий.
Он писал: «Для упрощения работы необходимо сделать кодирование более понятным. Системы обозначений, используемые в настоящее время, имеют много недостатков. Все они непонятны для начинающего, отличаются друг от друга (каждая система ориентирована на конкретную машину) и трудны для чтения. Расшифровка программного кода крайне сложна и при наличии примечаний, даже если это ваша собственная программа, написанная несколько месяцев назад».
Джон Мочли разделял эту точку зрения. В то время основанная им совместно с Экером компания работала над созданием двух компьютеров. Первый - двоичная машина «Бинак» BINAC, разрабатываемая по заказу самолетостроительной компании, и второй - «Юнивак» UNIVAC, (UNIVersal Automatic Computer - универсальный автоматический компьютер), предназначенный для Национального бюро переписи США.
В 1949 г. Мочли поручил своим программистам создать программу, которая позволила бы машине воспринимать алгебраические уравнения, записанные в традиционной Форме. В полной мере достичь этой честолюбивой цели не удалось.
Однако созданная система кодирования под названием «Короткий код» Short Code действительно позволяла записывать уравнения не в двоичном виде, а с помощью двухсимвольных комбинаций.
Так, уравнение вида A = B + C могло быть введено в форме последовательности 00 S0 03 S1 07 S2, где переменные A, B, C обозначены S0, S1, S2, а операции равенства и сложения - 03 и 07 (комбинация 00 определяет номер строки программы).
Программист мог затем дать компьютеру указание присвоить переменной S0, скажем, значение 5, а переменной S1 - значение 3. После этого компьютер уже сам определял значение переменной S2.
Система кодирования, предложенная Мочли, явилась настоящим откровением для одного неугомонного программиста из его компании - энергичной и независимой особы по имени Грейс Мюррей Хоппер. Спустя почти тридцать лет она вспоминала: «Я полагаю, это было первое обстоятельство, натолкнувшее меня на мысль о возможности использования кода, который отличался бы от машинного».
|