Edsger Dijkstra
17878
31624106
2008-07-16T12:57:36Z
~Pyb
5622
+image
[[Image:Edsger Wybe Dijkstra.jpg|thumb|Edsger Dijkstra]]
'''Edsger Wybe Dijkstra''' (né à [[Rotterdam]] le [[11 mai]] [[1930]], mort à [[Nuenen]] le [[6 août]] [[2002]]) est un [[mathématicien]] et [[informatique|informaticien]] [[Pays-Bas|néerlandais]] du {{XXe siècle}}.
== Biographie ==
Après des études de [[physique théorique]], il s'engage dès [[1955]] dans le domaine de l'[[informatique]] alors naissante, dont il est l'un des pionniers les plus éclairés. Parmi ses contributions se trouve un [[Algorithmique|algorithme]] de calcul du [[Problèmes de cheminement|plus court chemin]] dans les [[Théorie des graphes|graphes]], connu sous le nom d'[[algorithme de Dijkstra]].
Enseignant à l'[[Université Technique d'Eindhoven]], il commence à se faire connaître en matière de [[Système d'exploitation|systèmes]] avec ''[[THE Operating system]]'', un système construit en [[Abstraction (informatique)|couches d'abstraction]] successives et idéal pour l'enseignement (« THE » est un jeu de mot sur l'acronyme de son université ''Technische Hogeschool Eindhoven'', école polytechnique). Fort de l'expérience d'écriture de ce système, il formalise le concept, avant lui diffus, de [[Sémaphore (informatique)|sémaphore]] puis introduit le concept de ''section critique'' avec deux exemples devenus classiques : le [[problème des lecteurs et des rédacteurs]] et le [[dîner des philosophes]].
Constatant les dégâts provoqués par l'usage incontrôlé de l'instruction <code>[[goto]]</code> en programmation, il rédige en [[1968]] pour les ''Communications of the ACM'' un article qu'il nomme ''A case against the GOTO statement'' (« Un procès contre l'instruction GOTO »). Voulant publier rapidement l'article sous la forme d'une lettre à l'éditeur, l'éditeur [[Niklaus Wirth]] le rebaptise ''Go To Statement Considered Harmful'' (« L'instruction Go To jugée nuisible »). Ce nouveau titre autant que le propos de l'article devient alors célèbre dans le milieu de l'informatique. Les titres de la forme ''X considered harmful'' se multiplient, jusqu'à un ''Dijkstra considered harmful''.<ref>Phillip Laplante, ''Great Papers in Computer Science'', West Pub.Co., U.S., [[14 février]] [[1996]], {{ISBN|0-314-06365-X}}, p. 420</ref> L'instruction <code>goto</code> est rapidement marginalisée, et presque éliminée, par la [[programmation structurée]] (concept de Wirth et Dijkstra, présenté entre autres dans [http://www.cs.utexas.edu/~EWD/transcriptions/EWD02xx/EWD268.html EWD 268]). En programmation structurée, le ''goto'' est remplacé par des instructions comme ''if... then ... else ...'', ''while ... do'', ''repeat ... until'' commes elles furent introduites par Wirth dans [[Algol W]] : chacun contient ''une seule'' entrée et ''une seule'' sortie, ce qui rend enfin possible des tests systématiques exhaustifs impossibles avec le "code spaghetti". Des conditions peuvent aussi être imposées à l'entrée unique et des caractéristiques postulées à la sortie unique, ce qui ouvre la porte à des outils ajoutés à la syntaxe, comme ''assert'' (voir [[Logique de Hoare]]) et plus tard à la [[programmation par contrat]] du langage [[Eiffel (langage)|Eiffel]].
Dijkstra avait joué un rôle important dans le développement du [[langage Algol]] à la fin des [[années 1950]] et développé ensuite « la science et l'art des langages de programmation », contribuant grandement à notre compréhension de leur structure, de leur représentation et de leur implémentation »<ref>citation de l'[[Association for Computing Machinery|ACM]], ''Association for Computer Machinery''</ref>. C'est aussi un adepte du bel algorithme, y compris pour des sujets difficiles à traiter en programmation structurée comme les [[perles de Dijkstra]] (disposer des perles de trois couleurs sur un fil de façon à ce qu'il n'y ait jamais deux séquences adjacentes identiques).
Le discours qu'il prononce en [[1972]] lorsqu'il reçoit le [[prix Turing]], ''The Humble Programmer''<ref>Edsger Wybe Dijkstra, intitulé ''The Humble Programmer'', [http://www.adrahon.org/classiques/le_programmeur_modeste.php lire en ligne la traduction française]</ref>, est resté célèbre, lui aussi. Il s'agit également d'un exercice d'[[autodérision]], le professeur Dijkstra s'étant toujours montré très conscient de la valeur de ses travaux
== Anecdotes ==
* Dijkstra avait une très belle écriture manuscrite et a toujours refusé d'utiliser un traitement de texte, préférant la lettre manuscrite photocopiée. [[Luca Cardelli]] a créé une [[fonte de caractères|fonte]] « Dijkstra » en son honneur, qui imite son écriture régulière. Dijkstra référençait toutes ses lettres par ''EWD'' suivi d'un nombre, la dernière étant la lettre ''EWD 1318''.
== Aphorismes ==
Dijkstra, connu pour son caractère difficile et son intransigeance, était réputé pour ses [[aphorisme]]s qui résumaient sa vision de la science informatique.
* « Tester un programme peut démontrer la présence de bugs, jamais leur absence ».
* « Se demander si un ordinateur peut penser est aussi intéressant que de se demander si un sous-marin peut nager. »
* « La programmation par objets est une idée exceptionnellement mauvaise qui ne pouvait naître qu'en Californie. »
* « Les progrès ne seront possibles que si nous pouvons réfléchir sur les programmes sans les imaginer comme des morceaux de code exécutable. »
* « Autrefois les physiciens répétaient les expériences de leurs collègues pour se rassurer. Aujourd'hui ils adhèrent à FORTRAN et s'échangent leurs programmes, bugs inclus. »
* « À propos des langages : il est impossible de tailler un crayon avec une hache émoussée. Il est vain d'essayer, à la place, de le faire avec dix haches émoussées. »
* « L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes. »
== Voir aussi ==
=== Articles connexes ===
* [[Autostabilisation]]
* [[Algorithme de Dijkstra]]
=== Références ===
<references/>
===Bibliographie ===
* Krzysztof Apt : ''Edsger Wybe Dijkstra (1930-2002): A Portrait of a Genius'' in ''Formal Aspects of Computing''(2002) 14:92-08 {{pdf}} [http://homepages.cwi.nl/~apt/ps/dijkstra.pdf]
=== Liens externes ===
* [http://www.cs.utexas.edu/users/EWD/ Edsger W. Dijkstra Archive - manuscripts of Edsger W. Dijkstra]
* [http://mathiaz.com/routage/ Applet java implémentant l'algorithme de Dijsktra (Link State)]
{{Lauréats du prix Turing}}
{{Portail informatique}}
{{DEFAULTSORT:Dijkstra, Edsger}}
[[Catégorie:Mathématicien néerlandais]]
[[Catégorie:Personnalité néerlandaise en informatique]]
[[Catégorie:Personnalité en théorie des graphes]]
[[Catégorie:Lauréat du prix Turing]]
[[Catégorie:Naissance en 1930]]
[[Catégorie:Décès en 2002]]
[[ast:Edsger Dijkstra]]
[[bg:Едсхер Дейкстра]]
[[bn:এট্সখার ডেইক্স্ট্রা]]
[[bs:Edsger Dijkstra]]
[[ca:Edsger Dijkstra]]
[[cs:Edsger Dijkstra]]
[[da:Edsger Dijkstra]]
[[de:Edsger Wybe Dijkstra]]
[[el:Έντσγκερ Ντάικστρα]]
[[en:Edsger W. Dijkstra]]
[[eo:Edsger Dijkstra]]
[[es:Edsger Dijkstra]]
[[et:Edsger Wybe Dijkstra]]
[[fi:Edsger Dijkstra]]
[[ga:Edsger Dijkstra]]
[[he:אדסחר דייקסטרה]]
[[hr:Edsger Dijkstra]]
[[hu:Edsger Wybe Dijkstra]]
[[id:Edsger Dijkstra]]
[[it:Edsger Dijkstra]]
[[ja:エドガー・ダイクストラ]]
[[ko:에츠허르 데이크스트라]]
[[lb:Edsger W. Dijkstra]]
[[ml:എഡ്ഗര് ഡൈക്സ്ട്രാ]]
[[nl:Edsger Dijkstra]]
[[pl:Edsger Dijkstra]]
[[pt:Edsger Dijkstra]]
[[ro:Edsger Dijkstra]]
[[ru:Дейкстра, Эдсгер Вибе]]
[[sk:Edsger Wybe Dijkstra]]
[[sr:Едсхер Дајкстра]]
[[sv:Edsger Dijkstra]]
[[tr:Edsger Dijkstra]]
[[vi:Edsger Dijkstra]]
[[zh:艾兹格·迪科斯彻]]