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

Фотографія Эдсгер Вібе Дейкстри (photo Edsger Wybe Dijkstra)

Edsger Wybe Dijkstra

  • День народження: 11.05.1930 року
  • Вік: 86 років
  • Місце народження: Роттердам, Великобританія
  • Громадянство: Нідерланди

Біографія

Видатний нідерландський учений, ідеї якого справили величезний вплив на розвиток комп’ютерної індустрії.

Народився 11 травня 1930 року в Роттердамі, в сім’ї вчених (батько — хімік, мати — математик). Після закінчення школи вступив на факультет теоретичної фізики Лейденського університету. У 1951 році захопився програмуванням, вступив на тритижневі комп’ютерні курси в Кембридж, з 1952 року працював програмістом в Математичному центрі Амстердама під керівництвом професора Ван Вейнгаардена (згодом — автора одного із способів формального опису граматики формальних мов — так званих дворівневих граматик Ван Вейнгаардена). Вже в 1952 році прийняв рішення остаточно спеціалізуватися на програмуванні, але курс теоретичної фізики закінчив. У 1956 році прийняв участь у розробці ЕОМ X1. Ця машина була створена трьома ентузіастами за рік. Саме для оптимізації розведення плат для X1 був придуманий алгоритм пошуку найкоротшого шляху на графі, відомий як «алгоритм Дейкстри».

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

У 1958-1960 роках брав участь у розробці мови програмування Алгол, в 1960-х — брав участь у створенні ОС THE — першої операційної системи, побудованої у вигляді безлічі паралельно які працюють взаємодіючих процесів. Саме в процесі цієї роботи з’явилися поняття синхронізації процесів, ідея семафора, а також була чітко усвідомлена необхідність структуризації процесу програмування і самих програм.

Тривалий час працював у фірмі Burroughs Corporation. У 1970-ті роки разом з Чарльзом Хоаром і Никлаусом Віртом розробив основні положення стала класикою методології розробки програм — структурного програмування.

В останні роки життя викладав в США, в Техаському університеті. Помер 6 серпня 2002 року.

Наукові досягнення

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

Літературні праці

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

Крім обговорення спеціальних питань, у своїх статтях і книгах Дейкстра послідовно відстоював необхідність математичного підходу до програмування, який передбачає попереднє точне, всебічне математичне опис завдання і способу її вирішення, формальний доказ правильності обраного алгоритму і подальшу реалізацію алгоритму у вигляді максимального простий, структурованої програми, коректність якої повинна бути формально доведена. На думку Дейкстри, панівний в комп’ютерній індустрії підхід до програмування як до процесу досягнення результату методом проб і помилок («написати код — протестувати — знайти помилки — виправити — протестувати — …») порочна, оскільки стимулює програмістів не думати над завданням, а писати код, при цьому абсолютно не гарантує коректність програм, яка не може бути доведена тестуванням в принципі.

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

Вплив

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

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

Питання «чи вміє комп’ютер думати» має не більше сенсу, ніж питання «чи вміє підводний човен плавати».

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

Коли радянський уряд ухвалив рішення про перехід радянської промисловості до копіювання зарубіжних зразків обчислювальної техніки, Дейкстра назвав це рішення найбільшою перемогою Заходу у «Холодній війні», а вибрану для клонування модель IBM/360 (прообраз радянської ЄС ЕОМ) — найбільшою диверсією Заходу проти СРСР.