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