Edsger Wiebe Dijkstra | |
---|---|
Edsger Wybe Dijkstra | |
Datum narození | 11. května 1930 [1] [2] [3] […] |
Místo narození | |
Datum úmrtí | 6. srpna 2002 [1] [2] [3] […] (ve věku 72 let) |
Místo smrti |
|
Země | |
Vědecká sféra | Informatika |
Místo výkonu práce |
Národní výzkumný ústav pro matematiku a informatiku Eindhoven University of Technology University of Texas v Austinu |
Alma mater | |
vědecký poradce | Adrian van Wiingaarden [5] |
Známý jako |
tvůrce Dijkstrova algoritmu a semaforů |
Ocenění a ceny | Turingova cena |
![]() | |
Mediální soubory na Wikimedia Commons |
Edsger Wiebe Dijkstra ( nizozemsky. Edsger Wybe Dijkstra [6] ( 11. května 1930 , Rotterdam , Nizozemsko – 6. srpna 2002 , Nuenen , Nizozemsko) je nizozemský vědec, jehož práce ovlivnily rozvoj informatiky a informací jeden z vývojářů konceptů strukturovaného programování , výzkumník formální verifikace a distribuovaných výpočtů Turing Laureate (1972) .
Narozen 11. května 1930 v Rotterdamu , v rodině vědců (otec je chemik , matka je matematička ).
Po ukončení školy vstoupil na fakultu teoretické fyziky na univerzitě v Leidenu .
V roce 1951 se začal zajímat o programování , nastoupil na třítýdenní počítačový kurz v Cambridge , od roku 1952 pracoval jako programátor v Amsterdamském matematickém centru pod vedením profesora Adriana van Wiingaardena , později autora jednoho ze způsobů formálně popsat gramatiku formálních jazyků – tzv. dvouúrovňové van Wiingaardenské gramatiky .
Již v roce 1952 se rozhodl konečně specializovat na programování, přesto absolvoval kurz teoretické fyziky.
V druhé polovině 50. let 20. století při hledání způsobů, jak optimalizovat rozložení desky vyvinul algoritmus pro nalezení nejkratší cesty v grafu, který se stal známým jako " Dijkstrův algoritmus ".
V roce 1957 se oženil, podle vlastních vzpomínek, v kolonce „profese“ v dotazníku, který se má vyplnit při svatbě, napsal „programátor“ - a byl nucen přepsat dokumenty s tím, že takový profese neexistuje, v důsledku toho musel uvést „teoretický fyzik“ [7] .
V letech 1958-1960 se podílel na vývoji programovacího jazyka Algol , pracoval v týmu na vytvoření jazykového překladače ; soutěžil s dánským týmem Petera Naura a slíbil, že se nebude holit, dokud nebude projekt dokončen a vyhrán tím, že za šest týdnů napíše kompilátor a zároveň vymyslí nové pravidlo kompilace – „volání jménem“.
V 60. letech se podílel na vytvoření operačního systému THE , postaveného jako sada paralelně vykonávajících interagujících procesů [8] . V průběhu této práce se objevily koncepty synchronizace procesů , myšlenka semaforu a byla jasně rozpoznána potřeba strukturovat proces programování a samotné programy.
Dlouhou dobu pracoval pro Burroughse . V 70. letech vyvinul základy strukturovaného programování s Tonym Hoareem a Niklausem Wirthem .
V posledních letech svého života učil na University of Texas .
Zemřel 6. srpna 2002 po dlouhém boji s rakovinou [9] [10] .
Dijkstra je známý svou prací na aplikaci matematické logiky při vývoji počítačových programů.
Aktivně se podílel na vývoji programovacího jazyka Algol a napsal první kompilátor Algol-60.
Jako jeden z autorů konceptu strukturovaného programování prosazoval odmítnutí použití instrukce GOTO .
Vlastní také myšlenku použití „ semaforů “ k synchronizaci procesů v multitaskingových systémech a algoritmus pro nalezení nejkratší cesty na řízeném grafu s nezápornými váhami hran, známý jako Dijkstrův algoritmus .
Navrhl také algoritmus seřaďovacího yardu – způsob, jak analyzovat matematické výrazy prezentované v infixové notaci .
V roce 1972 získal Turingovu cenu .
V roce 2002 obdržel výroční cenu Symposia o principech distribuovaného počítání Asociace pro výpočetní techniku „za publikaci, která nejvíce ovlivnila oblast distribuovaného počítání“; jako uznání zásluh vědce se tato cena od roku 2003 nazývá Dijkstrova cena .
Autor několika knih a mnoha článků, nejznámějšími publikacemi jsou knihy "Programming Discipline", "Notes on Structured Programming", článek "O nebezpečích operátora GOTO" ( angl. GOTO považováno za škodlivé ).
Kromě diskuse o speciálních problémech ve svých článcích a knihách Dijkstra důsledně obhajoval potřebu matematického přístupu k programování, který zahrnuje předběžný přesný, komplexní matematický popis problému a metodu jeho řešení, formální důkaz správnosti zvoleného algoritmu a následná implementace algoritmu ve formě co nejjednoduššího strukturovaného programu, jehož správnost musí být formálně prokázána.
Podle Dijkstra je převládající přístup v počítačovém průmyslu k programování jako procesu dosahování výsledku metodou pokusu a omylu („zapsat kód – test – najít chyby – opravit – test – ...“) chybný, protože podporuje programátory nemyslet na úkol, ale psát kód , který zároveň nezaručuje správnost programů, což nelze v zásadě prokázat testováním.
Opakovaně varován před snahou učinit z vývoje softwaru triviální proces; programování je podle jeho názoru v podstatě nesmírně složitá vědecká a inženýrská činnost a žádné nové metody a nástroje nemohou tuto situaci radikálně změnit – pouze osvobodí programátora od části rutinní práce. Pokusy udělat z programování jednoduchou činnost dostupnou pro každého jsou odsouzeny k neúspěchu.
V roce 1975 Dijkstra na příkladu stavu věcí v Německu ukázal, že rozvoj programování jako vědy, založené na jednom zvoleném programovacím jazyce, je nemožný.
Výsledkem tohoto přístupu byla úplná propast mezi teorií a praxí programování. Dijkstra poznamenal, že přijetí v Německu na vládní úrovni jazyka ALGOL 68 jako základního nástroje dalšího rozvoje mělo stejně paralyzující účinek jako rozhodnutí vlády SSSR o přechodu sovětského průmyslu na kopírování modelové řady IBM / 360 v r. konec 60. let, který vědec označil za největší vítězství Západu ve studené válce [11] .
Zajímavosti o Dijkstra: [12]
Turingovy ceny | Vítězové|
---|---|
|
Vývoj softwaru | |
---|---|
Proces | |
Koncepty na vysoké úrovni | |
Pokyny |
|
Vývojové metodiky | |
Modelky |
|
Pozoruhodné postavy |
|
![]() | ||||
---|---|---|---|---|
Slovníky a encyklopedie | ||||
Genealogie a nekropole | ||||
|