Э́дсгер Ви́бе Де́йкстра ( прослушать (11 мая 1930, Роттердам, Нидерланды — 6 августа 2002, , Нидерланды) — нидерландский учёный, труды которого оказали влияние на развитие информатики и информационных технологий; один из разработчиков концепции структурного программирования, исследователь формальной верификации и распределённых вычислений. Тьюринговский лауреат (1972).
Биография Родился 11 мая 1930 года в Роттердаме, в семье учёных (отец — химик, мать — математик) O'Connor, J. J.; Robertson, E. F. (July 2008). "Dijkstra biography". MacTutor. School of Mathematics and Statistics, University of St Andrews, Scotland. Archived from the original on 11 October 2013. Retrieved 18 January 2014. .
По окончании школы поступил на факультет теоретической физики Лейденского университета.
В 1951 году увлёкся программированием, поступил на трёхнедельные компьютерные курсы в Кембридже, с 1952 года работал программистом в Математическом центре Амстердама под руководством профессора Адриана ван Вейнгаардена, впоследствии — автора одного из способов формального описания грамматики формальных языков — так называемых двухуровневых грамматик ван Вейнгаардена.
Уже в 1952 году принял решение окончательно специализироваться на программировании, но всё же окончил курс теоретической физики.
Во второй половине 1950-х годов, в поисках путей оптимизации разводки плат, разработал алгоритм поиска кратчайшего пути на графе, ставший известным как «алгоритм Дейкстры».
В 1957 году женился, по собственным воспоминаниям, в графе «профессия» анкеты, которую положено заполнять при бракосочетании, написал «программист» — и его заставили переписывать документы, заявив, что такой профессии не существует, в результате пришлось указать «физик-теоретик»Edsger Dijkstra. The Humble Programmer // Communications of the ACM, vol. 15 (1972), 10: 859—866].
В 1958—1960 годах принимал участие в разработке языка программирования Алгол, работал в команде по созданию компилятора языка; соревнуясь с датской командой Петера Наура, поклялся не бриться до завершения проекта и победил, написав компилятор за шесть недель, заодно изобретя новое правило компиляции — «вызов по имени».
В 1960-е годы участвовал в создании операционной системы THE, построенной в виде множества параллельно исполняющихся взаимодействующих процессов. Именно в ходе этой работы появились понятия синхронизации процессов, идея семафора, а также была чётко осознана необходимость в структуризации процесса программирования и самих программ.
Длительное время работал в компании Burroughs. В 1970-е годы вместе с Тони Хоаром и Никлаусом Виртом разработал основные положения структурного программирования.
В последние годы жизни преподавал в Техасском университете.
Умер 6 августа 2002 года после долгой борьбы с раком.
Научные достижения Известность Дейкстре принесли его работы в области применения математической логики при разработке компьютерных программ.
Он активно участвовал в разработке языка программирования Алгол и написал первый компилятор Алгол-60.
Будучи одним из авторов концепции структурного программирования, он проповедовал отказ от использования инструкции GOTO.
Также ему принадлежит идея применения «семафоров» для синхронизации процессов в многозадачных системах и алгоритм нахождения кратчайшего пути на ориентированном графе с неотрицательными весами рёбер, известный как алгоритм Дейкстры.
Также предложил алгоритм сортировочной станции — способ разбора математических выражений, представленных в инфиксной нотации.
В 1972 году стал лауреатом премии Тьюринга.
В 2002 году получил ежегодную премию, вручаемую Ассоциации вычислительной техники «за публикацию, оказавшую наибольшее влияние на область распределённых вычислений»; в знак признания заслуг учёного с 2003 года эта премия носит название премии Дейкстры.
Рукописи EWD и самостабилизация С 1950-х годов Дейкстра писал научные работы исключительно от руки. Эти заметки, нумеровавшиеся префиксом EWD (всего более 1300 документов), тиражировались и рассылались коллегам в виде фотокопий. В них учёный развивал концепцию «вычислительной науки» (), согласно которой программирование является разделом прикладной математики, а не экспериментальной дисциплины. Отказ от использования текстовых процессоров Дейкстра объяснял тем, что отсутствие возможности быстрого редактирования требует более тщательного структурирования мыслей на этапе подготовки текста.
В 1974 году Дейкстра заложил основы теории самостабилизирующихся систем, предложив модель распределённых систем, способных возвращаться в легитимное состояние из произвольного начального состояния без внешнего вмешательства. Данная концепция легла в основу алгоритмов обеспечения отказоустойчивости в современных компьютерных сетях.
Библиография Автор нескольких книг и множества статей, самые известные публикации — книги «Дисциплина программирования», «Заметки по структурному программированию», статья «О вреде оператора GOTO» ().
Помимо обсуждения специальных вопросов, в своих статьях и книгах Дейкстра последовательно отстаивал необходимость математического подхода к программированию, который предполагает предварительное точное, всестороннее математическое описание задачи и способа её решения, формальное доказательство правильности выбранного алгоритма и последующую реализацию алгоритма в виде максимально простой, структурированной программы, корректность которой должна быть формально доказана.
По мнению Дейкстры, господствующий в компьютерной индустрии подход к программированию как к процессу достижения результата методом проб и ошибок («написать код — протестировать — найти ошибки — исправить — протестировать — …») порочен, поскольку стимулирует программистов не думать над задачей, а писать код, что при этом совершенно не гарантирует корректность программ, которая не может быть доказана тестированием в принципе.
Многократно предостерегал от попыток превратить разработку программ в некий тривиальный процесс; по его мнению, программирование в сути своей — чрезвычайно сложная научная и инженерная деятельность, и никакие новые методы и инструменты не смогут кардинально изменить это положение — они лишь освобождают программиста от части рутинной работы. Попытки же превратить программирование в простое занятие, доступное каждому, обречены на провал.
В 1975 году на примере положения дел в Германии Дейкстра показал, что развитие программирования как науки на основе одного выбранного языка программирования невозможно.
Результатом такого подхода стал полный разрыв теории и практики программирования. Дейкстра отмечал, что принятие в Германии на правительственном уровне языка ALGOL 68 в качестве фундаментального средства дальнейшего развития имело столь же парализующее действие, как и решение правительства СССР о переходе советской промышленности к копированию модельного ряда IBM/360 в конце 1960 годов, которое учёный назвал величайшей победой Запада в холодной войне.
Интересные факты Интересные факты о Дейкстре:
Свои статьи Дейкстра нумеровал EWD0, EWD1, EWD2 и т. д. Факт о Дейкстре: «Известно, что он мало заинтересован в приеме на старшие курсы университета, где он преподает, студентов со знанием Фортрана по той причине, что вместе с этими знаниями могли привиться дурные привычки программирования». Еще одна цитата из Дейкстры: «Изящество, ясность и тому подобное в значительной степени определяются количественными аспектами. (Этим владел Моцарт: многие его произведения, от которых замирает дыхание, обманчиво просты; кажется, будто они созданы практически из ничего!)»
Награды Премия Тьюринга (1972) Мемориальная премия Гарри Гуда (1974) Премия PODC за влиятельную публикацию (2002) C&C Prize (2002)
Публикации Книги
Основные статьи
См. также Considered harmful
Примечания
Литература
Ссылки
Премия Дейкстры за выдающиеся работы в области распределенных вычислений E. W. Dijkstra Archive
Категория:Программисты Нидерландов Категория:Учёные в области информатики Нидерландов Категория:Лауреаты премии Дейкстры Категория:Лауреаты премии Тьюринга Категория:Умершие от рака Категория:Создатели языков программирования Категория:Лауреаты мемориальной премии Гарри Гуда Категория:Персоналии:Технический университет Эйндховена Категория:Авторы книг о компьютерах Категория:Почётные члены Британского компьютерного общества Категория:Почётные доктора Университета Квинс в Белфасте