Открыть сервис

Дэвид Уилер

Дэвид Уилер (англ. David Wheeler; 9 февраля 1927, Лондон — 13 декабря 2004, Кембридж) — британский учёный в области информатики, один из пионеров программирования. Наиболее известен как создатель концепции подпрограммы с возвратом, разработчик алгоритма Уилера для сортировки слиянием, а также один из авторов первой в мире книги по программированию «Подготовка программ для электронных вычислительных машин» (1951). Внёс значительный вклад в развитие архитектуры компьютеров, криптографии и методов отладки программ.

Биография

Ранние годы и образование

Дэвид Уилер родился 9 февраля 1927 года в Бирмингеме, Великобритания. Его отец был инженером-механиком, а мать — учительницей. В 1945 году Уилер поступил в Кембриджский университет, где изучал математику. В 1948 году он получил степень бакалавра, а затем продолжил обучение в аспирантуре под руководством Мориса Уилкса, одного из создателей первого в мире компьютера с хранимой программой EDSAC.

Работа в Кембриджской лаборатории вычислительной техники

В 1949 году Уилер присоединился к команде разработчиков EDSAC (Electronic Delay Storage Automatic Calculator) в Кембриджской математической лаборатории (позже — Лаборатория вычислительной техники). Он стал одним из первых программистов, работавших на этой машине. В 1951 году Уилер защитил докторскую диссертацию на тему «Методы программирования для EDSAC», которая стала одной из первых диссертаций по информатике в мире.

В 1951 году совместно с Морисом Уилксом и Стэнли Гиллом Уилер опубликовал книгу «Подготовка программ для электронных вычислительных машин» (англ. The Preparation of Programs for an Electronic Digital Computer). Эта работа стала первым учебником по программированию, в котором были введены фундаментальные понятия, такие как подпрограммы, библиотеки подпрограмм и отладка.

Преподавательская и исследовательская деятельность

С 1951 по 1992 год Уилер работал в Кембриджском университете, занимая должности от ассистента до профессора. Он читал лекции по программированию, архитектуре компьютеров и криптографии. В 1960-х годах Уилер участвовал в разработке компьютера Titan (также известного как Atlas 2), который использовался в Кембридже для научных исследований и обработки данных.

Уилер также активно занимался криптографией. В 1970-х годах он разработал алгоритм шифрования, известный как «Шифр Уилера» (Wheeler’s cipher), который использовался в некоторых системах защиты данных. В 1980-х годах он участвовал в проекте по созданию криптографического протокола для банковских систем.

Поздние годы

После выхода на пенсию в 1992 году Уилер продолжал консультировать исследовательские группы и писать статьи. Он умер 13 декабря 2004 года в Кембридже в возрасте 77 лет.

Основные достижения

Подпрограммы с возвратом

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

Алгоритм Уилера для сортировки слиянием

В 1952 году Уилер предложил алгоритм сортировки слиянием, который использовал внешнюю память (например, магнитные ленты) для обработки больших объёмов данных. Этот алгоритм, известный как «алгоритм Уилера», был одним из первых эффективных методов сортировки для компьютеров с ограниченной оперативной памятью.

Вклад в криптографию

Уилер разработал несколько криптографических алгоритмов, включая шифр, основанный на линейных регистрах сдвига. Его работы в этой области повлияли на развитие симметричного шифрования и методов защиты данных.

Методы отладки программ

Уилер внёс вклад в развитие методов отладки, включая использование контрольных точек (checkpoints) и трассировку выполнения программы. Он также предложил концепцию «отладки с помощью печати» (print debugging), которая стала стандартной практикой в ранних компьютерных системах.

Научные труды

Книги

  • The Preparation of Programs for an Electronic Digital Computer (1951, соавторы: Морис Уилкс, Стэнли Гилл) — первый учебник по программированию.
  • Introduction to Computer Programming (1965) — учебное пособие для студентов Кембриджского университета.

Статьи

Уилер опубликовал более 50 научных статей, посвящённых программированию, архитектуре компьютеров и криптографии. Среди наиболее известных:

  • «The Use of Subroutines in Programming» (1950) — описание концепции подпрограмм.
  • «A Sorting Algorithm for Magnetic Tape» (1952) — описание алгоритма сортировки слиянием.
  • «Cryptographic Methods for Data Protection» (1975) — обзор криптографических методов.

Признание и награды

  • В 1951 году Уилер стал одним из первых лауреатов премии Британского компьютерного общества (BCS) за вклад в программирование.
  • В 1985 году он был избран членом Королевского общества (FRS) за заслуги в области информатики.
  • В 1994 году получил премию IEEE Computer Society Pioneer Award за пионерские работы в программировании.
  • В 2000 году его имя было включено в Зал славы компьютерной техники (Computer History Museum).

Влияние на информатику

Работы Дэвида Уилера заложили основы современного программирования. Концепция подпрограмм с возвратом стала стандартом для всех языков программирования, от ассемблера до высокоуровневых языков, таких как C, Java и Python. Его алгоритм сортировки слиянием используется в системах управления базами данных и обработки больших данных. Вклад в криптографию повлиял на развитие защищённых протоколов передачи данных.

Интересные факты

  • Уилер был известен своей привычкой писать программы на бумаге до их ввода в компьютер, что позволяло минимизировать ошибки.
  • Он был одним из первых программистов, которые использовали отладку с помощью печати промежуточных результатов на бумажной ленте.
  • В свободное время Уилер увлекался игрой на фортепиано и коллекционированием старинных книг по математике.

Источники

  • Wilkes, M. V., Wheeler, D. J., & Gill, S. (1951). The Preparation of Programs for an Electronic Digital Computer. Addison-Wesley.
  • Wheeler, D. J. (1950). «The Use of Subroutines in Programming». Proceedings of the Cambridge Philosophical Society.
  • Wheeler, D. J. (1952). «A Sorting Algorithm for Magnetic Tape». Journal of the ACM.
  • Computer History Museum. (2000). David Wheeler: Pioneer of Programming.
  • Королевское общество. (1985). Biographical Memoirs of Fellows of the Royal Society: David Wheeler.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →