Главная Статьи Войти О сайте

Эдсгер Вибе Дейкстра

Эдсгер Вибе Дейкстра

Нидерландский ученый

Имя: Эдсгер
Фамилия: Вибе
Дата рождения: 11.05.1930
Гражданство: Нидерланды



Родился 11 мая 1930 года в Роттердаме, в семье учёных (отец — химик, мать — математик). По окончании школы поступил на факультет теоретической физики Лейденского университета. В 1951 году увлёкся программированием, поступил на трёхнедельные компьютерные курсы в Кембридже, с 1952 года работал программистом в Математическом центре Амстердама под руководством профессора Ван Вейнгаардена (впоследствии — автора одного из способов формального описания грамматики формальных языков — так называемых двухуровневых грамматик Ван Вейнгаардена). Уже в 1952 году принял решение окончательно специализироваться на программировании, но курс теоретической физики закончил. В 1956 году принял участие в разработке ЭВМ X1. Эта машина была создана тремя энтузиастами за год. Именно для оптимизации разводки плат для X1 был придуман алгоритм поиска кратчайшего пути на графе, известный как «алгоритм Дейкстры».

В 1957 году Дейкстра женился. Как вспоминал он сам, в графе «профессия» анкеты, которую положено заполнять при бракосочетании, он написал «программист» — и его заставили переписывать документы, заявив, что такой профессии не существует. В результате, как писал Дейкстра: «Хотите — верьте, хотите — нет, но в графе „профессия“ моего свидетельства о браке значится забавная запись „физик-теоретик“!»[1].

В 1958—1960 годах принимал участие в разработке языка программирования Алгол, в 1960-х — участвовал в создании ОС THE — первой операционной системы, построенной в виде множества параллельно исполняющихся взаимодействующих процессов. Именно в процессе этой работы появились понятия синхронизации процессов, идея семафора, а также была чётко осознана необходимость в структуризации процесса программирования и самих программ.

Длительное время работал в фирме Burroughs Corporation. В 1970-е годы вместе с Чарльзом Хоаром и Никлаусом Виртом разработал основные положения ставшей классикой методологией разработки программ — структурного программирования.

В последние годы жизни преподавал в США, в Техасском университете. Умер 6 августа 2002 года.

Научные достижения

Известность Дейкстре принесли его работы в области применения математической логики при разработке компьютерных программ. Он активно участвовал в разработке языка программирования Алгол и написал первый компилятор Aлгол-60. Будучи одним из авторов концепции структурного программирования, он проповедовал отказ от использования инструкции GOTO. Также ему принадлежит идея применения «семафоров» для синхронизации процессов в многозадачных системах и алгоритм нахождения кратчайшего пути на ориентированном графе с неотрицательными весами рёбер, известный как Алгоритм Дейкстры. В 1972 году Дейкстра стал лауреатом премии Тьюринга.

Литературные труды

Дейкстра был активным писателем, его перу (он предпочитал авторучку клавиатуре) принадлежит множество книг и статей, самыми известными из которых являются книги «Дисциплина программирования» и «Заметки по структурному программированию», и статья «О вреде оператора GOTO» (GOTO considered harmful) — классические книги по теории структурного программирования.

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

Дейкстра многократно предостерегал от попыток превратить разработку программ в некий тривиальный процесс; по его мнению, программирование, в сути своей — чрезвычайно сложная научная и инженерная деятельность, и никакие новые методы и инструменты не смогут кардинально изменить это положение — они лишь освобождают программиста от части рутинной работы. Попытки же превратить программирование в простое занятие, доступное каждому, обречены на провал.

Влияние

Дейкстра также приобрёл немалу ю известность за пределами академических кругов благодаря своим резким и афористичным высказываниям по актуальным проблемам компьютерной индустрии. Вот некоторые из его афоризмов:

Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации (по этому вопросу см. статью оператор GOTO).

Вопрос «умеет ли компьютер думать» имеет не больше смысла, чем вопрос «умеет ли подводная лодка плавать».

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

Когда советское правительство приняло решение о переходе советской промышленности к копированию зарубежных образцов вычислительной техники, Дейкстра назвал это решение величайшей победой Запада в Холодной войне, а выбранную для клонирования модель IBM/360 (прообраз советской ЕС ЭВМ) — величайшей диверсией Запада против СССР.

© БиоЗвёзд.Ру