Edsger Dijkstra: dalla programmazione strutturata all’algoritmo

Maria Grazia Cosso16 Giugno 2024
Edsger Dijkstra code

Universalmente riconosciuto come il padre della programmazione strutturata, Edsger Dijkstra ha rivoluzionato il modo di concepire e scrivere codice informatico. Approfondiamo insieme alcuni aspetti della sua innovazione nella rubrica ritratti di questa settimana.


Benvenuti nella nuova sezione “Ritratti” di MisterGadget.Tech, un’entusiasmante esplorazione dei grandi personaggi che hanno plasmato la storia della tecnologia. In questa sezione, vi condurremo in un affascinante viaggio attraverso le vite e le realizzazioni di geni innovatori, visionari che hanno lasciato un’impronta indelebile nel mondo della tecnologia. Dai pionieri dell’informatica ai visionari dell’elettronica, ogni “Ritratto” sarà un’immersione approfondita nella vita e nel lavoro di coloro che hanno contribuito in modo significativo a plasmare il nostro presente tecnologico. Un omaggio a menti brillanti e a idee rivoluzionarie, “Ritratti” celebra il passato, presente e futuro dell’innovazione tecnologica. Ogni settimana un nuovo ritratto.



L’informatica è un universo in continua espansione, un campo dinamico che permea ogni aspetto della nostra società moderna. Studia l’elaborazione delle informazioni, la loro rappresentazione, organizzazione e trattamento automatico. Ma è anche molto più di questo: un insieme di strumenti, tecniche e metodologie che ci permettono di risolvere problemi, creare nuove opportunità e migliorare la qualità della nostra vita.

Siamo abituati a non fare caso a tutta l’informatica che ci circonda, dagli smartphone che usiamo quotidianamente ai sistemi di intelligenza artificiale che guidano le auto autonome. Non conosciamo però quali sono state le scoperte nel campo che hanno portato la tecnologia ad essere al punto in cui è oggi.

Edsger Dijkstra ha avuto un ruolo fondamentale nei primi anni dello sviluppo di questa scienza, convinto sostenitore dell’informatica come disciplina scientifica rigorosa, fondata su solide basi matematiche. Famoso per il suo algoritmo, ha introdotto un diverso paradigma ad oggi fondamentale nella programmazione moderna. Continua la lettura per saperne di più.

Chi è Edsger Dijkstra

Edsger Wybe Dijkstra, nato a Rotterdam l’11 maggio 1930, mostrò fin da giovane un’inclinazione per la matematica e le scienze. Dopo aver completato gli studi superiori, si iscrisse all’Università di Leida, dove si laureò in matematica e fisica teorica. Durante gli anni universitari iniziò a interessarsi ai computer, che all’epoca erano ancora agli albori.

Edsger Dijkstra
Fonte: Wikipedia

Nel 1952, iniziò a lavorare presso il Mathematisch Centrum di Amsterdam, dove ebbe l’opportunità di lavorare con alcuni dei primi computer. Fu in questo periodo che Dijkstra iniziò a sviluppare le sue idee sulla programmazione strutturata, un approccio che avrebbe rivoluzionato il modo in cui i programmi venivano scritti.

La programmazione strutturata: un cambiamento di paradigma

Prima, i programmi erano spesso scritti in modo caotico. Dijkstra propose un approccio più disciplinato, chiamata programmazione strutturata. Si tratta di un paradigma di programmazione che enfatizza l’utilizzo di strutture di controllo ben definite per organizzare il flusso di esecuzione di un programma. Ad esempio, sull’uso di strutture di controllo come cicli e istruzioni condizionali.

Questa metodologia si contrappone al precedente approccio basato sull’uso indiscriminato di salti incondizionati (GOTO), che spesso rendeva il codice difficile da leggere, comprendere e modificare. In questo modo i programmi divennero più facili da leggere, scrivere e mantenere. Pose inoltre le basi per l’ingegneria del software moderna.

Nel 1968, Dijkstra pubblicò una lettera aperta intitolata Go To Statement Considered Harmful, in cui criticava l’uso dell’istruzione GOTO nei linguaggi di programmazione. Questa lettera scatenò un acceso dibattito nella comunità informatica, e contribuì a diffondere l’idea che la programmazione strutturata fosse un approccio superiore.

L’Algoritmo di Dijkstra

Uno dei contributi più significativi di Dijkstra è l’algoritmo che porta il suo nome, l’algoritmo di Dijkstra. Sviluppato nel 1956, permette di trovare il percorso più breve tra due nodi in un grafo. Un nodo rappresenta un elemento fondamentale della struttura. I nodi possono essere pensati come punti distinti all’interno del grafo, collegati tra loro da archi. In altre parole, determina il cammino minimo da un punto di origine a tutte le altre destinazioni possibili all’interno di una rete.

Come funziona l’algoritmo di Dijkstra:

  1. Inizializzazione: si assegna al nodo di partenza una distanza zero e a tutti gli altri nodi una distanza infinita.
  2. Selezione del nodo: si seleziona il nodo con la distanza minore tra quelli non ancora visitati.
  3. Aggiornamento delle distanze: si esaminano i vicini del nodo selezionato e si aggiornano le loro distanze se il percorso attraverso il nodo selezionato è più breve di quello precedentemente noto.
  4. Iterazione: si ripetono i passi 2 e 3 finché tutti i nodi sono stati visitati.

Al termine dell’algoritmo, si ottiene per ogni nodo la distanza minima dal nodo di partenza e il percorso corrispondente.

Edsger Dijkstra graph

L’algoritmo di Dijkstra ha trovato applicazioni in una vasta gamma di campi. Ad esempio nei sistemi di navigazione, tramite il calcolo del percorso più breve tra due punti su una mappa stradale o in un sistema di trasporto pubblico. Viene impiegato per l’ottimizzazione del routing dei pacchetti dati per minimizzare i ritardi e le perdite.

Nella logistica, la pianificazione dei percorsi di consegna per ridurre i costi e i tempi di trasporto. Nella bioinformatica, per l’analisi delle reti biologiche, come le reti di interazione tra proteine o geni. In finanza, per l’ottimizzazione dei portafogli di investimento. Persino nei giochi, nel calcolo dei percorsi ottimali per i personaggi non giocanti (NPC) in un videogioco.


Potrebbe interessarti anche:


Pensatore profondo e docente appassionato

Dijkstra non era solo un brillante informatico, ma anche un pensatore profondo e un docente appassionato. Noto per la sua passione per la musica classica e per la sua abilità nel suonare il pianoforte, le sue lezioni erano famose per la loro chiarezza e i suoi scritti sono ancora oggi considerati una fonte di ispirazione per gli informatici di tutto il mondo.

Edsger Dijkstra è morto il 6 agosto 2002, lasciando un vuoto incolmabile nella comunità informatica. Tuttavia, la sua eredità continua a vivere attraverso le sue idee e le sue invenzioni. La programmazione strutturata, l’algoritmo di Dijkstra e il suo pensiero critico sull’informatica continuano a influenzare il modo in cui pensiamo e lavoriamo con i computer.


Registrati alla newsletter e diventa un tech-lover

Grazie!

Grazie! Riceverai una email per la verifica del tuo indirizzo di posta elettronica. Non sarai registrato fino a che non lo avrai confermato. Controlla anche nella cartella Spam.