На чтение: 8 мин.
Поделиться: 
Джон Бэкус
Джон Бэкус

Джон Бэкус

Американский математик, создатель языка программирования ФОРТРАН

Фамилия
Бэкус
Имя
Джон
Дата рождения
03.12.1924
Возраст
99 лет
Страна / Гражданство
США
Категория
Юридическая

К концу его второго семестра, в 1943 году, руководство университета решило, что дальнейшее пребывание молодого лодыря в стенах учебного заведения излишне, и без проволочек Бэкус был отчислен. В это время в мире бушевала Вторая мировая война и США уже полтора года вели боевые действия против Японской империи. Молодой Джон Бэкус, который фактически не получил никакого образования, в чине капрала поступил в силы ПВО на Тихом океане. Непосредственно в район боевых действий он, правда, не попал. Врачебная комиссия поставила ему диагноз - опухоль черепной кости, и врачи ему в голову вмонтировали металлическую пластину. По мнению Бэкуса, пластина была сделана ненадлежащим образом. Он связался с техниками, которые занимались такими пластинами, и заказал им новую по собственным чертежам.

Обзаведясь металлическим колпаком собственного производства, демобилизованный Бэкус отбыл в Штаты и поселился в Нью-Йорке. Дальше он стал думать о том, чем бы ему таким заняться в жизни. Ничто, кроме музыки, его не привлекало. Поскольку ему сильно хотелось иметь хорошую аппаратуру для прослушивания музыки, он поступил в школу радиотехники, чтобы самому сделать для себя все нужные устройства.

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

Весной 1949 года, за несколько месяцев до получения диплома, 25-летний Джон Бэкус все никак не мог определиться со своим будущим. Как-то раз в поисках перспективной работы его занесло в Компьютерный центр IBM на Мэдисон Авеню. Тогда слово "компьютер" (computer) обозначало совсем не то, что оно обозначает сегодня. В IBM Бэкус познакомился с проектом Selective Sequence Electronic Calculator (SSEC) - одной из первых разработок IBM в новой области электронных вычислительных устройств на вакуумных лампах. Этот, так сказать, компьютер не имел памяти, а весь ввод и вывод происходил посредством перфолент. После собеседования Джон Бэкус был принят на работу. Этот момент, можно сказать, самым серьезным образом повлиял на последующее развитие мирового программирования и как следствие всей вычислительной техники в целом.

В проекте SSEC Джона Бэкуса подключили к решению задачи вычисления положения Луны в 12-часовом интервале в любой момент на 200-летнем отрезке времени. Для вычисления каждой позиции Луны требовалось произвести 11 тысяч сложений и вычитаний, 9 тысяч умножений и выполнить 2 тысячи просмотров специальных таблиц, так что 13 тысяч огромных вакуумных ламп SSEC гудели как церковный орган. Различные узлы SSEC располагались вдоль трех стен комнаты размером 18 на 6 метров, так что служащие находились как бы внутри компьютера. Вычисления, выполненные, в том числе и Бэкусом, на SSEC, кстати, использовались в космической навигации НАСА в период с 1952 по 1971 годы. Позднее Бэкусу приходилось выполнять и более экзотические задачи - например, вычисление точных орбит пяти внешних планет Солнечной системы на временном интервале с 1653 по 2060 годы. Однако в 1952 году SSEC уже морально устарел и был демонтирован.

Команда SSEC разбежалась по различным подразделениям IBM. Джон Бэкус с группой программистов присоединился к проекту 701. Компания IBM настаивает на том, что созданная в 1952 году машина IBM 701 стала фактически первой ЭВМ с архитектурой, взятой за образец всеми последующими разработчиками. Это утверждение можно и оспорить. Но факт остается фактом: для самой IBM модель 701 действительно стала водоразделом, и все последующие модели мейнфреймов IBM были ее отдаленными потомками. А поскольку в итоге в мире победила архитектура IBM, появление IBM 701 действительно можно считать знаковым событием. В этой машине, кстати, разработчикам удалось реализовать технологию магнитной ленты. Различные попытки использования магнитной ленты были и до IBM 701, однако специалистам не удавалось сделать процесс считывания информации стабильным. Инженеры IBM справились с этой задачей. Таким образом, точно можно сказать, что эра магнитных накопителей началась именно с IBM 701.

Однако IBM 701 была все же ламповой машиной, и в 1954 году компания IBM запустила новый проект - 704. Это уже была машина нового поколения - поколения электронно-магнитной памяти. Машина IBM 704 предоставила программистам универсальный набор команд для работы, в том числе с числами с плавающей запятой. Те, кому когда-нибудь приходилось на "Ассемблере" писать алгоритмы обработки чисел с плавающей запятой, знают, как это нелегко. А программировать в ту пору приходилось в основном только математические формулы, и никаких математических сопроцессоров не было. Неудивительно, что в конечном итоге лентяй Джон Бэкус (как он впоследствии шутливо, а может, и не совсем шутливо вспоминал) стал все больше задумываться над тем, как создать независимый от архитектуры машины язык, который позволяет легко программировать математические формулы. Бэкус собрал группу из девяти дипломированных специалистов по математике, и они с энтузиазмом принялись за работу по созданию нового языка. Эти девять человек позднее вошли в пантеон программистской славы, а потому будет нелишним упомянуть их имена: Роберт Нельсон (Robert Nelson), Харлан Херрик (Harlan Herrick), Льюис Хэйт (Lois Haibt), Рой Нат (Roy Nutt), Ирвинг Циллер (Irving Ziller), Шелдон Бест (Sheldon Best), Дэвид Сэйр (David Sayre), Ричард Голдберг (Richard Goldberg) и Питер Шеридан (Peter Sheridan).

В своих воспоминаниях Бэкус пишет, что из-за свойственной ему лени он создал такую систему управления группой, что ему, собственно, и делать-то ничего не приходилось. Наибольшую сложность представляла для него только задача, как заставить членов группы не тратить столько времени на игры. Программисты из группы Бэкуса во время ланча любили сразиться в шахматы (правда, в то время еще не виртуальные, а настоящие). И никакие угрозы не могли их заставить прекратить это глупое убивание рабочего времени ранее двух часов пополудни, а то и позже. С тех пор так и повелось - программисты всего мира не менее двух часов в день должны посвятить компьютерным играм.

Джон Бэкус, конечно, шутит, когда говорит, что ничего не делал. Честь создания первого языка высокого уровня (HLL - High Level Language) принадлежит ему, и никто этих лавров у него никогда не отнимал. Спецификация нового языка появилась осенью 1954 года. Текст программы стал более простым, появились конструкции IF для организации ветвлений и циклы. Но самое главное - невероятно упростилось программирование формул. Например, формула D=B2-4AC, программирование которой даже на современном "Ассемблере" потребует десяток строк кода, на новом языке просто и изящно записывалась следующим образом: D=B**2-4*A*C. Неудивительно, что новый язык назвали транслятором формул (formula translator). Позднее в качестве официального названия закрепилось сокращение этой фразы - FORTRAN. В ноябре 1954 года Харлан Херрик на машине IBM 704 запустил и успешно выполнил первую "фортран"-программу, вообще-то говоря, первую HLL-программу.

Появление языка программирования высокого уровня, который не был привязан к машинам какой-то одной определенной архитектуры, послужило мощным стимулом для развития компьютерной техники. Теперь программисты могли за сравнительно небольшой промежуток времени писать программы, значительно превосходившие по объему вычислений то, что можно было сделать на "Ассемблере". Соответственно, возросли и требования к аппаратной части, что подстегивало изобретателей к созданию более мощных вычислительных систем.

Однако создание "Фортрана" - не единственный вклад Джона Бэкуса в развитие современного программирования. В 1960 году группа программистов из Цюриха, внеся некоторые изменения в спецификацию FORTRAN II, создала алгоритмический язык Algol-60. Джон Бэкус принял самое живое участие в обсуждении нового языка. Однако возникла проблема - английский язык, на котором изъяснялся Бэкус, был мало понятен швейцарским программистам. Для того чтобы исключить взаимное недопонимание, при описании конструкций языка были применены специальные диаграммы, которые Бэкус разработал совместно с Питером Науром (Peter Naur). С тех пор Форма Бэкуса-Наура (Backus-Naur Form - BNF) стала как бы эсперанто мирового программирования. Программисту, владеющему BNF, для знакомства с новым языком не нужно изучать толстенных фолиантов с описанием, достаточно изучить BNF этого языка.

И, наконец, Джон Бэкус создал язык FP, который, правда, не стал так же популярен, как "Фортран". FP - это так называемый чистый функциональный язык программирования, в котором программист сосредотачивается не на переменных и их значениях, а на "черных ящиках" - функциях, имеющих вход и выход. Идеи, использованные в языке FP, послужили материалом для размышления создателям языка LISP. Некоторые современные теоретики программирования считают, что за строгим функциональным программированием будущее, так как, используя этот метод, проще создавать "правильные программы", то есть такие, правильность которых может быть доказана уже путем анализа листинга, а не путем длительных тестов.

Источник: peoples.ru