Введение

Американский ученый-компьютерщик Джон Уорнер Бэкус (3 декабря 1924 года – 17 марта 2007 года) – американский ученый-компьютерщик. Он возглавил команду, которая изобрела и внедрила FORTRAN, первый широко используемый язык программирования высокого уровня, и был изобретателем формы Бэкуса — Наура (BNF), широко используемой нотации для определения синтаксиса формальных языков. Позже он исследовал парадигму функционального программирования, представив свои выводы в своей влиятельной лекции, с которой он выступил при получении премии Тьюринга в 1977 году: «Можно ли освободить программирование от стиля фон Неймана?». Институт инженеров электротехники и электроники (IEEE) присудил Бэкусу награду имени W. W. Макдауэлла в 1967 году за разработку FORTRAN. Он получил Национальную медаль науки в 1975 году и премию Тьюринга в 1977 году «за глубокий, влиятельный и долгосрочный вклад в разработку практических систем программирования высокого уровня, особенно благодаря его работе над FORTRAN, и за публикацию формальных процедур для спецификации языков программирования». Джон Бэкус вышел на пенсию в 1991 году. Он умер у себя дома в Эшленде, штат Орегон, 17 марта 2007 года. Он учился в школе The Hill в Поттстауне, штат Пенсильвания, но, по-видимому, не был прилежным учеником. Он поступил в Университет Вирджинии, чтобы изучать химию, но испытывал трудности с учебой и был исключен менее чем через год за плохую посещаемость. Впоследствии он был призван в армию США во время Второй мировой войны. Во время стажировки в больнице у него диагностировали опухоль черепной кости, которую успешно удалили, и в его голову имплантировали пластину. Затем он поступил в Медицинскую школу Флоэр и Пятой авеню, но она показалась ему неинтересной, и он бросил ее через девять месяцев, получив в 1946 году медицинское увольнение из армии США и поступив в IBM в 1950 году. В течение первых трех лет он работал над выборочным последовательным электронным калькулятором (SSEC); его первым крупным проектом было написание программы для расчета положений Луны. В 1953 году Бэкус разработал язык Speedcoding – первый язык программирования высокого уровня, созданный для компьютера IBM, для облегчения разработки программного обеспечения для компьютера IBM 701. В то время программирование было очень сложным, и в 1954 году Бэкус собрал команду для определения и разработки Fortran для компьютера IBM 704. Fortran стал первым языком программирования высокого уровня, получившим широкое распространение. Этот широко используемый язык сделал компьютеры практичными и доступными машинами для ученых и других специалистов, не требуя от них глубоких знаний о технической стороне.

Нашему виду

Бэкус участвовал в работе международных комитетов, разработавших ALGOL 58 и оказавший огромное влияние ALGOL 60, который быстро стал общепринятым мировым стандартом для публикации алгоритмов. Бэкус разработал форму Бэкуса — Наура (BNF), опубликованную в отчете ЮНЕСКО по ALGOL 58. Это была формальная нотация, позволяющая описывать любой контекстно-свободный язык программирования, и она сыграла важную роль в разработке компиляторов. Были предприняты некоторые попытки отклониться от этого подхода (в частности, в Lisp и APL), но к 1970-м годам контекстно-свободные спецификации Бэкуса — Наура для языков программирования стали довольно стандартными, после разработки автоматических генераторов компиляторов, таких как yacc. Этот вклад помог Бэксусу получить премию Тьюринга в 1977 году.

Программирование на уровне функций

Позже Бэкус работал над языком программирования на уровне функций, известным как FP, который был описан в его лекции при присуждении премии Тьюринга "Можно ли освободить программирование от стиля фон Неймана?" как идентичный традиционным языкам функционального программирования. FP был сильно вдохновлён APL Кеннета Иверсона, вплоть до использования нестандартного набора символов. Интерпретатор FP распространялся вместе с операционной системой 4.2BSD Unix, однако существовало относительно немного реализаций этого языка, большинство из которых использовались в образовательных целях. В последние годы своей карьеры Бэкус разрабатывал FL (от "Function Level") – преемника FP. FL был внутренним исследовательским проектом IBM, и разработка языка была прекращена после завершения проекта. Сохранилось лишь несколько публикаций, описывающих его, а исходный код компилятора, описанного в них, так и не был опубликован. FL шёл вразрез с функциональными языками программирования, разрабатываемыми в 1980-х годах, большинство из которых основывались на лямбда-исчислении и статической типизации, а не, как в APL, на конкатенации примитивных операций. Многие идеи этого языка впоследствии были реализованы в различных версиях языка программирования J, преемнике APL, разработанном Иверсоном.