/ Research di: Davide Mariani

Algoritmo

cuneiform_660 copy

Donald Knuth, uno dei primi informatici di Stanford, nel 1972 si trovò tra le mani i resti di un’antica tavoletta Babilonese delle dimensioni di un libro tascabile. Rimase piacevolmente stupito nel constatare che, anacronisticamente, il contenuto del reperto poteva essere definito con la parola “algoritmo”.

“Un serbatoio.
L’altezza è 3,20, è stato scavato un volume di 27,46,40
La lunghezza è maggiore della larghezza di 50.
Devi prendere il reciproco dell’altezza, 3,20, e ottieni 28.
Moltiplica per il volume, 27,46,40 e otterrai 8,20.
Prendi la metà di 50 e calcolane il quadrato, otterrai 10,25.
Somma 8,20 e otterrai 8,30,25.
La radice quadrata è 2,55.
Fanne due copie, somma all’una e sottrai dall’altra.
Troverai che 3,20 è la lunghezza e 2,30 è la larghezza.
Questa è la procedura”
[¹]

“Questa è la procedura”. Credo proprio che sia stata questa formula di chiusura standard, simile a cliccare il “Run” di Processing una volta che lo script è concluso, ad aver profondamente colpito Knuth: al Louvre aveva trovato una “procedura” che gli ricordava un programma scritto per un Borroughs B5500 [2]. L’algoritmo è un tipo di codice che rappresenta una serie di istruzioni, che definisce uno specifico processo e che contiene una quantità di informazioni tale da renderlo “eseguibile”. L’algoritmo è la precisa spiegazione del “come fare qualcosa”.

Sono algoritmi le indicazioni date ad un turista per raggiungere il teatro.
Sono algoritmi le ricette per fare i dolci che si trovano nel terzo cassetto in cucina.
Sono algoritmi gli script all’interno dell’editor di Python.

Note


  1. D. Knuth, Ancient Babylonians Algorithms, in Communications of the Association for Computing Machinery”, 15, n.7 (1972), p.672
  2. J. Gleick, L’informazione, Feltrinelli, Milano, 2012, p.49