Дейкстра, Эдсгер Вибе | это... Что такое Дейкстра, Эдсгер Вибе? (original) (raw)
Эдсгер Вибе Дейкстра | |
---|---|
Edsger Wybe Dijkstra | |
Дата рождения: | 11 мая 1930(1930-05-11) |
Место рождения: | Роттердам (Нидерланды) |
Дата смерти: | 6 августа 2002(2002-08-06) (72 года) |
Место смерти: | Неунен (Нидерланды) |
Научная сфера: | информатика |
Место работы: | Национальный исследовательский институт математики и информатикиТехнический Университет Эйндховена Техасский университет в Остине |
Известен как: | создатель алгоритма Дейкстры и семафороводин из основателей структурного программированияодин из создателей операционной системы THE |
Награды и премии | Премия Тьюринга |
Э́дсгер Ви́бе Де́йкстра (нидерл. Edsger Wybe Dijkstra [ˈɛtsxər ˈwibə ˈdɛɪkstra] прослушать) (11 мая 1930, Роттердам Нидерланды — 6 августа 2002, Нуенен, Нидерланды) — нидерландский учёный, идеи которого оказали влияние на развитие компьютерной индустрии.
Содержание
- 1 Биография
- 2 Научные достижения
- 3 Литературные труды
- 4 Влияние
- 5 Литература
- 6 Примечания
- 7 Ссылки
- 8 См. также
Биография
Родился 11 мая 1930 года в Роттердаме, в семье учёных (отец — химик, мать — математик). По окончании школы поступил на факультет теоретической физики Лейденского университета. В 1951 году увлёкся программированием, поступил на трёхнедельные компьютерные курсы в Кембридже, с 1952 года работал программистом в Математическом центре Амстердама под руководством профессора Адриана ван Вейнгаардена, впоследствии — автора одного из способов формального описания грамматики формальных языков — так называемых двухуровневых грамматик Ван Вейнгаардена. Уже в 1952 году принял решение окончательно специализироваться на программировании, но курс теоретической физики закончил. В 1956 году принял участие в разработке ЭВМ X1.[источник не указан 535 дней] Эта машина была создана тремя энтузиастами за год. Именно для оптимизации разводки плат для 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) |