Найти в Дзене
Люди и код

Как получить «Нобелевскую премию» за компиляторы, но не создать ни одного из них

Оглавление

Два учёных стали отцами всех современных компиляторов и за это получили по полмиллиона долларов каждый.

У физиков и литераторов есть Нобелевская премия, а в Computer Science есть премия Тьюринга. Для учёного в области информатики это самая престижная награда. И именно такую премию получили два учёных — Альфред Ахо и Джеффри Ульман. В официальной формулировке — за создание компилятора. Правда, компиляторы существовали и до них, а сами учёные не написали ни одного. Так за что же они получили премию Тьюринга? Давайте разбираться.

Кто такие эти учёные

Альфред Вайно Ахо — профессор Колумбийского университета. К моменту получения премии он уже успел 30 лет проработать в Bell Labs, где занимался исследованиями по Computer Science. У Ахо докторская степень Принстонского университета по электротехнике и информатике, а среди его наград — медаль IEEE им. Джона фон Неймана и приз NEC C&C Foundation.

Джеффри Дэвид Ульман — профессор Стэнфордского университета и генеральный директор Gradiance Corporation. Преподаёт с 1979 года, в числе его наград — медаль IEEE им. Джона фон Неймана, премия Дональда Кнута, а также премии NEC C&C Foundation и ACM SIGMOD. Ульман состоит в Национальной инженерной академии США, Американской академии искусств и Национальной академии наук.

За что им дали премию

Официальная формулировка звучит так:

«За фундаментальные алгоритмы и теорию, лежащую в основе реализации языков программирования, а также за синтез этих и других результатов в книгах собственного авторства, которые имели большое влияние и обучили несколько поколений учёных».

Звучит непонятно, поэтому переводим на русский: современные приложения пишутся на высокоуровневых языках программирования — например, на Java или Python. Но компьютер не понимает их синтаксис, ему нужно особое представление кода — низкоуровневое, состоящее из команд, которые процессор способен распознать.

Компилятор как раз переводит понятный нам язык программирования в машинный код / команды процессора. Он руководствуется набором правил и алгоритмов — сначала эти правила обосновываются теоретически, обсуждаются научным сообществом, и только потом они начинают использоваться на практике для создания компиляторов. И вот именно за теоретическое обоснование — причём ёмкое и практичное — Ахо и Ульман получили награду.

Как Ахо и Ульман «придумали» компилятор

Учёные начали исследовать алгоритмы ещё в 1967 году в Bell Labs — и продолжали на протяжении нескольких десятилетий после.

В те времена компьютерам требовалось постоянное обслуживание — этим занимались целые команды математиков и других специалистов.

Ахо и Ульман начали преподавать свою теорию в университетах и параллельно работать над исследованиями. Они написали несколько книг, которые впоследствии стали легендарными в сообществе программистов:

Написанная авторами книга с драконами до сих пор остаётся классической теоретической работой по компиляторам. И всё же самое главное достижение Ахо и Ульмана — это теоретические основы для компиляторов современных языков высокого уровня.

Сегодня Альфред Ахо продолжает работать в Bell Labs и читать лекции в Колумбийском университете, а Джеффри Ульман преподаёт в Стэнфорде и работает в Gradiance Corporation.

***

Чтобы не пропустить другие материалы о программировании, об истории IT и искусственном интеллекте, подпишитесь на канал. Ставьте лайки, чтобы видеть больше таких статей у себя в ленте. Если вы хотите, чтобы мы написали о каком-то факте или технологии, предложите свою тему в комментариях к этой или другим статьям.

#люди_и_код #технологии #it #программирование