Джон Бэкус

    Создатели Фортрана, работавшие в фирме IBM, не подозревали, что этот язык получит такое признание. Когда в 1954 году они приступили к работе, информатика развивалась стихийно, и трудно было что-то планировать. Руководителем группы разработчиков был Джон Бэкус.
    После службы в армии во время Второй мировой войны Бэкус попал в Нью-Йорк, где стал учиться в радиотехнической школе. “Тогда пределом моих стремлений, — признавался он позднее, — было сделать высококачественное звуковоспроизводящее устройство” [1]. Однако один из преподавателей убедил Бэкуса продолжить образование, и он поступил в Колумбийский университет. Так началась одна из самых плодотворных карьер в истории компьютерной техники.
    В 1950 году Джон Бэкус, уже имея степень магистра математики, пришел в фирму IBM. Ему было тогда 25 лет. Вскоре он возглавил группу, разрабатывавшую интерпретатор “Быстрый кодировщик” для компьютера IBM 701, а позже принял участие в создании усовершенствованного варианта этой машины, модели IBM 704. В 1953 году Бэкус предложил создать для компьютера IBM 704 язык, позволяющий записывать команды почти в обычной алгебраической форме, и компилятор для него.
    Данное предложение быстро нашло поддержку, так как в фирме искали пути, обеспечивающие увеличение сбыта своих компьютеров, и потому стремились сделать их более привлекательными, “дружественными” пользователю. Как правило, инженеры, преподаватели, научные работники не имели ни времени, ни терпения изучать машинные коды или даже язык ассемблера, тем более что это требовало довольно глубокого знания того, как устроен и действует компьютер. Однако все они могли бы использовать язык высокого уровня, если бы его было достаточно легко освоить.
    Первый отчет, связанный с созданием языка Фортран (FORTRAN, от FORmula TRANslator — транслятор, или переводчик формул), вышел в ноябре 1954 года [2—4], а первая версия языка была реализована на компьютере IBM 704 лишь через два с половиной года (получить эффективный и надежный компилятор оказалось значительно более трудной задачей, чем предполагалось). В 1958 году появилась усовершенствованная версия — Фортран II, одно из достоинств которой состояло в том, что здесь можно было использовать и ассемблер, и затем другая версия — Фортран III. Большую популярность получила версия под названием Фортран IV, выпущенная в 1962 году. Однако стандарт языка еще отсутствовал, и это мешало переносить программы с машин одного типа на машины других типов. Ситуация изменилась в 1966 году — с введением стандарта, известного как Фортран 66.
    Позже появились еще несколько версий, на основе которых была создана переработанная версия стандарта языка — Фортран 77, тоже ставшая весьма популярной. В 1984 году были рассмотрены предложения, связанные с выработкой новой стандартной версии Фортран 8x (позднее получившей название “Фортран 88”). В ней предусматривались некоторые изменения, касающиеся, в частности, работы с файлами.
    Фортран до сих пор применяется при решении инженерных и научных задач, причем за прошедшие годы он значительно расширился и усовершенствовался [5], превратившись в язык, удобный для использования во многих областях (появился даже Visual Fortran). Многие идеи, заложенные в Фортране, нашли развитие в других языках программирования. Последним стандартом языка был Фортран 95. “Фортран будет всегда” — примерно таков смысл высказываний поклонников этого языка-долгожителя [3].
    В конце 1950-х годов возникла идея создать еще один язык программирования — Алгол (ALGOL, от ALGOrithmic Language — алгоритмический язык). В Европе были обеспокоены диктатом компании IBM, давшей жизнь Фортрану, и других американских фирм на европейском рынке компьютеров [1]. В то же время американские программисты хотели получить универсальное средство программирования для научных задач, единый язык, устраивающий всех (Фортран, по понятным причинам, тут не подходил).
    Первую версию языка, Алгол 58, приняли в ходе совещания, состоявшегося в Цюрихе весной 1958 года, в котором участвовали ведущие специалисты из США и в их числе Джон Бэкус. Примерно через полтора года на конференции в Париже после восьмидневного обсуждения представители семи стран: США, ФРГ, Великобритании, Франции, Дании, Голландии и Швейцарии — утвердили улучшенную версию языка — Алгол 60, получившую потом наибольшую популярность [4, 6, 7]. Двумя годами позже на конференции в Риме были сформулированы поправки и дополнения к описанию языка, но своего названия (Алгол 60) он не изменил. Алгол 60 имел несколько слабых мест, и главное из них — бедные средства ввода-вывода. Этот недостаток был исправлен в языке Алгол 68 (появившемся в 1968 году и переработанном в 1975 году).
    В Алголе нашли отражение новые идеи, касающиеся создания языков программирования, причем наиболее важные из этих идей относятся к блокам и процедурам. Он стал первым языком программирования с блочной структурой (позволяющей делить программы на блоки, разрабатываемые независимо друг от друга). Алгол оказал существенное влияние на формирование языков высокого уровня, а языки Паскаль, Си и Ада даже называют “алголоподобными”.
    Джон Бэкус активно помогал развитию Алгола (который многое унаследовал от Фортрана) и попутно разработал специальную систему определений для языков программирования. Например, определяя элемент “цифра”, он указывал: “<цифра> :=: 0|1|2|3|4|5|6|7|8|9|”. Вскоре такой способ записи назвали нормальной формой Бэкуса, или БНФ. (Позже датский астроном Петер Наур внес уточнения в методику Бэкуса, и эту форму стали называть формой Бэкуса — Наура, при этом сокращение осталось прежним — БНФ.) Потом БНФ долго употреблялась при описании языков высокого уровня [1].

    Литература
  
1. Язык компьютера: Пер. с англ. М.: Мир, 1989.
    2. Малыхина М.П., Частиков А.П. Языки программирования: Фортран // Новое в жизни, науке, технике. Сер. “Вычислительная техника и ее применение”, № 8/88.
    3. Долгожитель // Информатика, № 41/99.
    4. Ставшие классическими // Информатика, № 26/2001.
    5. Пройдаков Э.М., Теплицкий Л.А. Англо-русский толковый словарь по вычислительной технике, Интернету и программированию. Изд. 2-е, испр. и доп. М.: Издательско-торговый дом “Русская редакция”, 2000.
    6. Малыхина М.П., Частиков А.П. Языки программирования: Алгол // Новое в жизни, науке, технике. Сер. “Вычислительная техника и ее применение”, № 9/88.
    7. Универсальный, международный, классический // Информатика, № 8/2000.

Hosted by uCoz