Дейкстра, Эдсгер Вибе
| Эдсгер Вибе Дейкстра | |
| Edsger Wybe Dijkstra | |
| Дата рождения: | |
|---|---|
| Место рождения: | |
| Дата смерти: | |
| Место смерти: | |
| Научная сфера: | |
| Место работы: |
Национальный исследовательский институт математики и информатики |
| Известен как: |
создатель алгоритма Дейкстры и семафоров |
| Награды и премии | |
Э́дсгер Ви́бе Де́йкстра (нидерл. Edsger Wybe Dijkstra [ˈɛtsxər ˈwibə ˈdɛɪkstra] прослушать) (11 мая 1930, Роттердам Нидерланды в 6 августа 2002, Нуенен, Нидерланды) в нидерландский учёный, идеи которого оказали влияние на развитие компьютерной индустрии.
Содержание |
[править] Биография
Родился 11 мая 1930 года в Роттердаме, в семье учёных (отец в химик, мать в математик). По окончании школы поступил на факультет теоретической физики Лейденского университета. В 1951 году увлёкся программированием, поступил на трёхнедельные компьютерные курсы в Кембридже, с 1952 года работал программистом в Математическом центре Амстердама под руководством профессора Адриана ван Вейнгаардена, впоследствии в автора одного из способов формального описания грамматики формальных языков в так называемых двухуровневых грамматик Ван Вейнгаардена. Уже в 1952 году принял решение окончательно специализироваться на программировании, но курс теоретической физики закончил. В 1956 году принял участие в разработке ЭВМ X1. Эта машина была создана тремя энтузиастами за год. Именно для оптимизации разводки плат для X1 был придуман алгоритм поиска кратчайшего пути на графе, известный как «алгоритм Дейкстры».
В 1957 году Дейкстра женился. Как вспоминал он сам, в графе «профессия» анкеты, которую положено заполнять при бракосочетании, он написал «программист» в и его заставили переписывать документы, заявив, что такой профессии не существует. В результате, как писал Дейкстра: «Хотите в верьте, хотите в нет, но в графе впрофессияв моего свидетельства о браке значится забавная запись вфизик-теоретикв!»[1].
В 1958в1960 годах принимал участие в разработке языка программирования Алгол, в 1960-х в участвовал в создании операционной системы THE (англ.), построенной в виде множества параллельно исполняющихся взаимодействующих процессов[2]. Именно в процессе этой работы появились понятия синхронизации процессов, идея семафора, а также была чётко осознана необходимость в структуризации процесса программирования и самих программ.
Длительное время работал в компании Burroughs (англ. Burroughs Corporation). В 1970-е годы вместе с Тони Хоаром и Никлаусом Виртом разработал основные положения структурного программирования.
В последние годы жизни преподавал в США, в Техасском университете. Умер 6 августа 2002 года.
[править] Научные достижения
Известность Дейкстре принесли его работы в области применения математической логики при разработке компьютерных программ. Он активно участвовал в разработке языка программирования Алгол и написал первый компилятор Алгол-60. Будучи одним из авторов концепции структурного программирования, он «проповедовал» отказ от использования инструкции GOTO. Также ему принадлежит идея применения «семафоров» для синхронизации процессов в многозадачных системах и алгоритм нахождения кратчайшего пути на ориентированном графе с неотрицательными весами рёбер, известный как Алгоритм Дейкстры. В 1972 году Дейкстра стал лауреатом премии Тьюринга.
[править] Литературные труды
Дейкстра был активным писателем, его перу (он предпочитал авторучку клавиатуре) принадлежит множество книг и статей, самыми известными из которых являются книги «Дисциплина программирования» и «Заметки по структурному программированию», и статья «О вреде оператора GOTO» (GOTO considered harmful) в классические книги по теории структурного программирования.
Помимо обсуждения специальных вопросов, в своих статьях и книгах Дейкстра последовательно отстаивал необходимость математического подхода к программированию, который предполагает предварительное точное, всестороннее математическое описание задачи и способа её решения, формальное доказательство правильности выбранного алгоритма и последующую реализацию алгоритма в виде максимально простой, структурированной программы, корректность которой должна быть формально доказана. По мнению Дейкстры, господствующий в компьютерной индустрии подход к программированию как к процессу достижения результата методом проб и ошибок («написать код в протестировать в найти ошибки в исправить в протестировать в в») порочен, поскольку стимулирует программистов не думать над задачей, а писать код, при этом совершенно не гарантирует корректность программ, которая не может быть доказана тестированием в принципе.
Дейкстра многократно предостерегал от попыток превратить разработку программ в некий тривиальный процесс; по его мнению, программирование, в сути своей в чрезвычайно сложная научная и инженерная деятельность, и никакие новые методы и инструменты не смогут кардинально изменить это положение в они лишь освобождают программиста от части рутинной работы. Попытки же превратить программирование в простое занятие, доступное каждому, обречены на провал.
[править] Влияние
Дейкстра также приобрёл немалую известность за пределами академических кругов благодаря своим резким и афористичным высказываниям по актуальным проблемам компьютерной индустрии. Вот некоторые из его афоризмов:
- Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации (по этому вопросу см. статью про оператор GOTO).
- Вопрос «умеет ли компьютер думать» имеет не больше смысла, чем вопрос «умеет ли подводная лодка плавать».
- Проекты, предлагающие программирование на естественном языке, гибельны по своей сути.
- Когда советское правительство приняло решение о переходе советской промышленности к копированию модельного ряда IBM/360, Дейкстра (работавший в то время в конкурировавшей с IBM фирме Burroughs) назвал это решение величайшей победой Запада в холодной войне, а выбранную для клонирования модель IBM/360 (прообраз советской ЕС ЭВМ) в величайшей диверсией Запада против СССР.
[править] Литература
- Дейкстра Э. Дисциплина программирования = A discipline of programming. в 1-е изд. в М.: Мир, 1978. в С. 275.
- Дал У., Дейкстра Э., Хоор К. Структурное программирование = Structured Programming. в 1-е изд. в М.: Мир, 1975. в С. 247.
[править] Примечания
- в‘ Смиренный программист. EWD340
- в‘ Haldar, Sibsankar and Aravind, Alex A. Operating Systems. в Pearson, 2010. в С. 198. в 580 с. в ISBN 978-81-317-3022-5
[править] Ссылки
- Премия Дейкстры за выдающиеся работы в области распределенных вычислений
- Фотографии
- Переводы статей Дейкстры
- Доводы против оператора Goto
- GOTO Considered Harmful (англ.)
- E. W. Dijkstra Archive (англ.)
- Книги на русском языке
- Взаимодействие последовательных процессов
[править] См. также
| Лауреаты премии Тьюринга | |
|---|---|
|
Перлис (1966) Уилкс (1967) Хэмминг (1968) Минский (1969) Уилкинсон (1970) Маккарти (1971) Дейкстра (1972) Бахман (1973) Кнут (1974) Ньюэлл + Саймон (1975) Рабин + Скотт (1976) Бэкус (1977) Флойд (1978) Айверсон (1979) Хоар (1980) Кодд (1981) Кук (1982) Томпсон + Ритчи (1983) Вирт (1984) Карп (1985) Хопкрофт + Тарьян (1986) Кок (1987) Сазерленд (1988) Кэхэн (1989) Корбато (1990) Милнер (1991) Лэмпсон (1992) Хартманис + Стернс (1993) Фейгенбаум + Редди (1994) Блюм (1995) Пнуели (1996) Энгельбарт (1997) Грей (1998) Брукс (1999) Яо (2000) Даль + Нюгорд (2001) Ривест + Шамир + Адлеман (2002) Кэй (2003) Серф + Кан (2004) Наур (2005) Аллен (2006) Кларк + Эмерсон + Сифакис (2007) Лисков (2008) Текер (2009) Вэлиант (2010) Перл (2011) |
| Разработка программного обеспечения | |
|---|---|
| Известные деятели |
Кент Бек Гради Буч Фред Брукс Barry Boehm Уорд Каннингем Оле-Йохан Даль Том Демарко Эдсгер Вибе Дейкстра Дональд Кнут Мартин Фаулер Чарльз Энтони Ричард Хоар Watts Humphrey Майкл Джексон Ивар Якобсон Craig Larman James Martin Мейер Бертран Дэвид Парнас Winston W. Royce James Rumbaugh Никлаус Вирт Эдвард Йордан Стив Макконнелл |
| Процесс | |
| Концепции | |
| Направления | |
| Модели разработки |
|
| Другие модели | |
| Прочее | |
- Персоналии по алфавиту
- Учёные по алфавиту
- Родившиеся 11 мая
- Родившиеся в 1930 году
- Родившиеся в Роттердаме
- Умершие 6 августа
- Умершие в 2002 году
- Умершие в Северном Брабанте
- Лауреаты премии Тьюринга
- Математики Нидерландов
- Логики Нидерландов
- Программисты Нидерландов
- Математики по алфавиту
- Учёные в области информатики
- Лауреаты премии Дейкстры
- Умершие от рака
- Создатели языков программирования