# Edsger Dijkstra

Edsger Wybe Dijkstra (pronuncia olandese ascolta) (Rotterdam, 11 maggio 1930 – Nuenen, 6 agosto 2002) è stato un informatico olandese.

## Biografia
### Nascita

Edsger Wybe Dijkstra nacque a Rotterdam l'11 maggio del 1930. Suo padre, Douwe Wybe Dijkstra, fu un professore di chimica alle scuole superiori e servì come presidente della Dutch Chemical Society. Sua madre, Brecthje Cornelia Kluijver (o Kluyver), fu una brillante matematica, da cui lo stesso Edsger afferma di aver imparato la capacità di trovare soluzioni eleganti.

### Dal ginnasio all'università

Durante l'ultimo anno di Ginnasio frequentato a Rotterdam, Dijkstra aveva deciso di studiare legge all'università. La sua ambizione era di rappresentare i Paesi Bassi alle Nazioni Unite. Per via degli ottimi risultati conseguiti nelle discipline scientifiche all'esame finale del 1948, sia i professori che i parenti gli suggerirono di assecondare tale propensione. L'anno seguente, pertanto, Dijkstra andò all'Università di Leida a studiare matematica e fisica per i primi anni e fisica teorica negli ultimi. Questi anni universitari sono stati, a detta di Dijkstra, il periodo migliore della sua vita, malgrado fosse in difficoltà economiche, lavorasse molto duramente e dormisse poco.
Nel 1951, mentre era ancora all'Università di Leida a studiare, il padre, che era abbonato a Nature, trovò un annuncio per un corso di tre settimane sulla programmazione dei computer che si sarebbe svolto all'Università di Cambridge in Inghilterra nel settembre dello stesso anno. Edsger colse l'occasione e per questo venne anche invitato da Adrian van Wijngaarden, il Direttore del dipartimento di informatica del Centrum Wiskunde & Informatica (CWI), ad Amsterdam. A seguito di questo incontro riceverà un lavoro a tempo pieno al CWI, come primo olandese con le competenze da "programmatore". Nel 1956 Dijkstra conseguì la laurea in fisica. Finiti gli studi, decide di spostarsi da Leida, dove ha soggiornato dal 1949 al 1956, a Amsterdam per lavorare a tempo pieno al CWI.

### Dai primi contributi al premio Turing

Ha lavorato come ricercatore per la Burroughs Corporation agli inizi degli anni '70. Nel 1972 ha ricevuto il Premio Turing.
Ha lavorato all'Eindhoven University of Technology nei Paesi Bassi e in seguito tenne la cattedra di informatica all'Università del Texas di Austin.

### Gli ultimi anni

Nel 1999, a quasi settanta anni, Dijkstra si ritira dall'insegnamento. In occasione del suo settantesimo compleanno, il dipartimento di informatica organizza un simposio che si è tenuto nel maggio del 2000. Nel febbraio del 2002 Edsger Wybe Dijkstra ritorna nel suo Paese d'origine, i Paesi Bassi.

## Attività

I suoi più importanti contributi all'informatica sono stati il cosiddetto "algoritmo di Dijkstra" e il concetto informatico di "semaforo".
È anche noto per la pessima opinione espressa a proposito dell'uso dell'istruzione GOTO nella programmazione, culminata nel celebre articolo del 1968 Go To Statement Considered Harmful, considerato come uno dei passi fondamentali verso il rifiuto generalizzato dell'istruzione GOTO nei linguaggi di programmazione e della sua sostituzione con più funzionali strutture di controllo come il ciclo while. Il celebre titolo dell'articolo non è di Dijkstra, ma di Niklaus Wirth, allora curatore di Communications of the ACM. Dijkstra era noto per essere un fan dell'ALGOL 60, e lavorò nel gruppo che realizzò il primo compilatore per questo linguaggio. Dijkstra e Jaap Zonneveld, che collaborò alla realizzazione del compilatore, si accordarono sul fatto di non radersi fino alla conclusione del progetto. Alla fine Zonneveld si tagliò la lunga barba, mentre Dijkstra preferì mantenerla fino alla fine dei suoi giorni.
Sin dal 1970, l'interesse principale di Dijkstra fu la verifica formale (formal verification). A quel tempo l'opinione prevalente era che bisognasse scrivere prima il programma e solo in seguito fornire una dimostrazione matematica di correttezza formale. Dijkstra obiettò che le dimostrazioni così prodotte erano lunghe ed illeggibili, e che non fornivano nessuna informazione sul modo in cui il programma era stato sviluppato. Il metodo alternativo proposto da Dijkstra fu il cosiddetto program derivation, consistente nello sviluppare in modo parallelo il programma e la dimostrazione. Secondo le parole di Dijkstra: "develop proof and program hand in hand". Partendo da una descrizione matematica di quello che il programma dovrebbe fare, si applicano le opportune trasformazioni matematiche in modo da trasformare la descrizione matematica iniziale in un programma eseguibile. Il programma risultante viene definito come: correct by construction ("corretto per costruzione").
Si occupò anche di sistemi operativi, sviluppando il concetto di semaforo, implementandolo nel sistema operativo THE, e formulando il famoso problema di sincronizzazione detto problema dei cinque filosofi a cena.
Gran parte del lavoro successivo di Dijkstra riguarda i modi per snellire le argomentazioni matematiche. In una intervista del 2001 dichiarò un desiderio di "eleganza", dove l'approccio corretto consiste nell'elaborare i pensieri mentalmente, senza tentare di comunicarli finché non sono completi. L'analogia che fece era in contrasto con l'approccio compositivo di Mozart e Beethoven.
Dijkstra era noto per le sue opinioni schiette riguardo alla programmazione, e per la sua abitudine di comporre attentamente dei manoscritti con la sua penna stilografica. Molti dei suoi appunti sono stati scansionati e sono disponibili online.

## Libri

* Predicate Calculus and Programming Semantics (1990)
* A Method of Programming (1988)
* Selected Writings on Computing: A Personal Perspective (1982)
* A Discipline of Programming (1976)
* Structured Programming (1972)