Джон Уорнер Бэкус (3 декабря 1924 г. – 17 марта 2007 г.) был американским ученым-компьютерщиком . Он возглавлял команду, которая изобрела и реализовала FORTRAN , первый широко используемый язык программирования высокого уровня , и был изобретателем формы Бэкуса–Наура (BNF), широко используемой нотации для определения синтаксиса формальных языков . Позднее он провел исследование парадигмы программирования на уровне функций , представив свои выводы в своей влиятельной лекции 1977 года на премии Тьюринга «Можно ли освободить программирование от стиля фон Неймана?» [1]
В 1967 году IEEE наградил Бэкуса премией WW McDowell Award за разработку FORTRAN. [2] В 1975 году он получил Национальную научную медаль [3], а в 1977 году — премию Тьюринга «за глубокий, влиятельный и продолжительный вклад в разработку практических систем программирования высокого уровня, в частности, благодаря своей работе над FORTRAN, а также за публикацию формальных процедур для спецификации языков программирования». [4]
Джон Бэкус вышел на пенсию в 1991 году. Он умер у себя дома в Эшленде, штат Орегон , 17 марта 2007 года. [5]
Бэкус родился в Филадельфии и вырос в соседнем Уилмингтоне, штат Делавэр . [6] Он учился в школе The Hill в Поттстауне, штат Пенсильвания , но, по-видимому, не был прилежным учеником. [5] Он поступил в колледж при Университете Вирджинии , чтобы изучать химию , но испытывал трудности с учебой, и был исключен менее чем через год за плохую посещаемость. [7] Впоследствии он был призван в армию США во время Второй мировой войны , [5] и в конечном итоге получил звание капрала, будучи назначенным командующим зенитной батареей, дислоцированной в Форт-Стюарте , штат Джорджия . [7]
После получения высоких баллов на тесте на пригодность к военной службе, армия отправила его изучать инженерное дело в Питтсбургский университет . [7] Позже он перевелся на подготовительную медицинскую программу в колледже Хаверфорд . [8] Во время стажировки в больнице у него диагностировали опухоль черепной кости , которую успешно удалили, а в голову установили пластину. Затем он перешел в Медицинскую школу Флауэр и Пятой авеню , чтобы поступить на медицинский факультет, но посчитал это неинтересным и бросил учебу через девять месяцев. [7] Вскоре он перенес вторую операцию по замене металлической пластины в голове на пластину собственного дизайна, [9] и получил почетное увольнение из армии США в 1946 году. [7]
После переезда в Нью-Йорк он сначала учился на радиотехника , а затем заинтересовался математикой. Он окончил Колумбийский университет, получив степень бакалавра в 1949 году и степень магистра в 1950 году, обе по математике, [7] [10] и присоединился к IBM в 1950 году. В течение первых трех лет он работал над Selective Sequence Electronic Calculator (SSEC) ; его первым крупным проектом было написание программы для расчета положения Луны . В 1953 году Бэкус разработал язык Speedcoding , первый язык высокого уровня, созданный для компьютера IBM, для помощи в разработке программного обеспечения для компьютера IBM 701. [11]
Программирование в то время было очень сложным, и в 1954 году Бэкус собрал команду для определения и разработки Fortran для компьютера IBM 704. Fortran был первым языком программирования высокого уровня, который был широко использован. Этот широко используемый язык сделал компьютеры практичными и доступными машинами для ученых и других, не требуя от них глубоких знаний о технике. [12]
Бэкус входил в состав международных комитетов, которые разработали ALGOL 58 и очень влиятельный ALGOL 60 , который быстро стал фактическим мировым стандартом для публикации алгоритмов . Бэкус разработал форму Бэкуса–Наура (BNF), опубликованную в отчете ЮНЕСКО по ALGOL 58. Это была формальная нотация, способная описать любой контекстно-свободный язык программирования, и она сыграла важную роль в разработке компиляторов . Было испробовано несколько отклонений от этого подхода (в частности, в Lisp и APL ), но к 1970-м годам контекстно-свободные спецификации Бэкуса–Наура для компьютерных языков стали вполне стандартными после разработки автоматизированных генераторов компиляторов, таких как yacc .
Этот вклад помог Бэкусу получить премию Тьюринга в 1977 году.
Бэкус позже работал над языком программирования на уровне функций , известным как FP , который был описан в его лекции на премии Тьюринга «Можно ли освободить программирование от стиля фон Неймана ?». [1] Иногда рассматриваемая как извинение Бэкуса за создание Fortran, эта статья сделала меньше для привлечения интереса к языку FP, чем для стимулирования исследований в области функционального программирования в целом. Когда Бэкус опубликовал стиль программирования на уровне функций, его сообщение было в основном неправильно понято [13] как то же самое, что и традиционные языки стиля функционального программирования.
FP был сильно вдохновлен APL Кеннета Э. Айверсона , даже используя нестандартный набор символов . Интерпретатор FP распространялся с операционной системой 4.2BSD Unix , но было относительно немного реализаций языка, большинство из которых использовались в образовательных целях.
Бэкус провел последнюю часть своей карьеры, разрабатывая FL (от «Function Level»), преемника FP. FL был внутренним исследовательским проектом IBM, и разработка языка остановилась, когда проект был завершен. Сохранилось лишь несколько документов, документирующих его, и исходный код компилятора, описанного в них, не был опубликован. FL расходился с функциональными языками программирования, разрабатывавшимися в 1980-х годах, большинство из которых основывались на лямбда-исчислении и системах статической типизации вместо, как в APL, конкатенации примитивных операций. Многие идеи языка теперь реализованы в версиях языка программирования J , преемника APL Айверсона.