Код
#статьи

За какой компилятор дали «Нобелевку по информатике»

Изобретатели компилятора получат премию Тьюринга и 1 миллион долларов. Погодите, какого такого компилятора?! Их же куча!

Анастасия Телесницкая для Skillbox

Премия Тьюринга — это Нобелевка в сфере информатики и IT. Для айтишника круче награды нет — и дали её в этом году изобретателям компилятора: Альфреду Ахо и Джеффри Ульману. И тут мы крепко призадумались: так ведь компиляторов чуть ли не больше, чем языков программирования. А сами эти ребята, хоть и убелены сединами, на создателей самого-пресамого первого компилятора ну никак не тянут.

Да и история всё помнит. Первый компилятор появился ещё в 1952 году — его создал Алик Гленни для компьютера Manchester Mark 1. А в 1952 команда Грейс Хоппер в Remington Rand написала компилятор для языка программирования A-0: именно тогда придумали и сам термин «компилятор» — надо же было как-то назвать эту штуковину.

В 1954–1957 годах группа под руководством Джона Бэкуса из IBM разработала FORTRAN, который считается первым высокоуровневым языком программирования. А в 1957 году подоспел и компилятор FORTRAN, который стал первым на 100% рабочим и готовым компилятором. Дальше — больше. В шестидесятых годах разработчики COBOL написали компиляторы для нескольких разных архитектур. Примерно в то же время Джон Маккарти из MIT разработал LISP, а бонусом к нему — джентльменский набор в виде интерпретатора, компилятора и ассемблера.

То есть до Ахо и Ульмана уже существовали компиляторы. Так что, ребзя, расходимся, нас обманули. Хотя вряд ли премию Тьюринга дали по блату — что же тогда скрывается за формулировкой «изобретатели компилятора»? Было сложно, но мы разобрались.

Альфред и Джеффри: кто такие эти полумиллионеры

Альфред Вайно Ахо — почётный профессор Колумбийского университета. Он 30 лет работал в Bell Laboratories — и покинул легендарную компанию в должности вице-президента по исследованиям в области компьютерных наук. Среди его степеней — доктор наук в области электротехники и информатики Принстонского университета, а среди наград — медаль IEEE Джона фон Неймана и приз NEC C&C Foundation (в общем, это мегакруто, поверьте на слово, — плюс у него ещё куча почётных членств во всяких почётных обществах).

Джеффри Дэвид Ульман — почётный профессор Стэнфордского университета и генеральный директор Gradiance Corporation, образовательной онлайн-платформы в области Computer Science. В Стэнфорде он работает с 1979 года, а до этого, как и Ахо, отметился в Принстонском университете и Bell Labs. Среди наград Ульмана — тоже медаль IEEE Джона фон Неймана и второе «тоже» — премия NEC C&C Foundation. Но, в отличие от Ахо, у него ещё есть премии Дональда Кнута, ACM и SIGMOD. Он член Национальной инженерной академии США, Национальной академии наук и Американской академии искусств. В общем, у Джеффри с регалиями тоже полный порядок.

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

На сайте премии Тьюринга висит такая формулировка:

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

Как и ожидалось, казённая формулировка ничего не объяснила, поэтому мы снова берёмся за перо. Всё просто. Практически каждая программа — от приложений на смартфоне или бортовом компьютере авто до ПО в ЦОДах технологических корпораций — написана на высокоуровневых языках программирования. Чтобы стать исполняемым и запускаться на конкретных устройствах или операционных системах, этот код компилируется в код на низкоуровневом языке. А теоретическую основу для процесса компиляции современных языков программирования разработали как раз Ахо и Ульман. Грубо говоря, они изобрели сферический компилятор в вакууме, на основе которого разработчики делают компиляторы под разные высокоуровневые языки и платформы.

Начиная с совместной работы в Bell Labs в 1967 году и несколько десятилетий после, Ахо и Ульман глубоко проработали основы теории и реализации языков программирования, а также написали немало работ по алгоритмам. Но главное (в контексте статьи) — они заложили теоретическую базу для технологий компиляции современных высокоуровневых языков программирования.

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

«Ахо и Ульман помогли нам понять теоретические основы алгоритмов и определить курс для исследований и практики в области разработки компиляторов и языков программирования. Они были нашими идейными лидерами с начала 1970-х годов, а их труды служили маяком для многих поколений программистов и исследователей».

Габриэле Котсис,
президент ACM, отзыв на сайте премии Тьюринга

Как два учёных придумали компилятор

Во время работы в Bell Labs Ахо и Ульман сосредоточились на разработке эффективных алгоритмов для анализа и перевода языков программирования. В то время вычислительные машины были устройствами, с которыми работали небольшие группы математиков и специалистов.

Потом Ахо и Ульман работали в разных компаниях и университетах, но продолжали совместные исследования: написали множество книг и статей, разработали новые подходы к алгоритмам, языкам программирования, компиляторам и программным системам. Вот две их главные книги:

«Разработка и анализ компьютерных алгоритмов»

(1974)

Классика в ​​сфере компьютерных технологий. Более десяти лет была одной из самых цитируемых книг в своей сфере и до сих пор остаётся главным учебником по алгоритмам во всём мире.

«Принципы проектирования компиляторов»

(1977)

Подробная книга об устройстве компиляторов. В ней чётко описаны этапы перевода языка программирования высокого уровня в машинный код, эффективные методы лексического анализа, методы синтаксического анализа и генерация кода. Последняя версия книги (2007) остаётся главным учебником по проектированию компиляторов.

«Ахо и Ульман обосновали фундаментальные идеи в области алгоритмов, формальных языков, компиляторов и баз данных. Эти идеи сыграли важную роль в развитии современного программирования и софтверной отрасли. А учебники Ахо и Ульмана стали золотым стандартом для студентов, исследователей и практиков».

Джефф Дин,
старший научный сотрудник Google и старший вице-президент Google AI, отзыв на сайте премии Тьюринга

По сути, именно Ахо и Ульману мы обязаны тем, что компьютеры стали доступны не только узкой горстке математиков и гиков. На основе их книг до сих создаются современные компиляторы, которые переводят программы с высокоуровневых языков в машинный код. Только вдумайтесь: почти всё, что питается от электричества и хоть что-то вычисляет, работает благодаря фундаментальным исследованиям Ульмана и Ахо. Сейчас им уже за 70, но они по-прежнему преданы своему делу, пишут научные работы, преподают и проводят исследования.


Учись бесплатно:
вебинары по программированию, маркетингу и дизайну.

Участвовать
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована