Donald Ervin Knuth (1938)

Per capire che tipo è Donald basta leggere un pezzetto della sua biografia.

Studente di fisica, a 18 anni vede il primo computer, un IBM 650.

Legge il manuale, e decide di riscrivere l’assembler e il compilatore perché non gli piacciono

Da Fisica passa a matematica, studia al CalTech, uno degli istituti di ricerca più prestigiosi al mondo, a Pasadena in California.

Siccome l’editore non stampa i suoi libri con la qualità adeguata, Donald inventa un sistema di descrizione dei caratteri (Metafont) e un software per la scrittura di testi scientifici (TEX).

Knuth è autore di uno dei testi fondamentali per chiunque voglia imparare a programmare bene: The Art Of Computer Programming (TAOCP). Ma lo abbiamo inserito qui per un motivo speciale: Knuth ha inventato il concetto di "Literate Programming" e i relativi software di scrittura di software WEB e CWEB.

Il Literate Programming è stata una rivoluzione copernicana: invece di scrivere un programma e poi commentarlo, si cominciano a scrivere i commenti, e a partire da quelli si produce il codice. In questo modo si è certi di non aver iniziato a scrivere codice prima di aver capito esattamente quello che si vuole fare, e come farlo. E' un po' la stessa idea che sta dietro la pratica del rubber duck debugging: per verificare che si è veramente capito un codice lo si spiega, in dettaglio, a qualcuno che non ne sa assolutamente niente, in questo caso una papera di gomma.

Se vi sembra curioso, pensate che il programma AI Copilot, recentemente proposto da Microsoft, parte dalla descrizione in inglese della funzione da scrivere e genera il codice corrispondente nel linguaggio scelto. Lo fa a partire da milioni e milioni di esempi di codice sorgente scritti da programmatori e depositati in GitHub, un enorme archivio di codice che è diventato di proprietà di Microsoft a partire dal 2018, e utilizzando un software di machine learning che "impara" dai testi.

Prossimo pannello:  Thomson



Versione: 03/02/2022 - 16:34:34

Parole: 193

Pannelli

Attori                      
Leibniz                     
Ada Lovelace                
Alan Turing                 
Levy                        
Queneau                     
Arnaud                      
Wirth                       
Hopper                      
Backus                      
Perlis                      
Hamilton                    
McCarthy                    
Russell                     
Knuth                       
Thomson                     
Stallman                    
Wall                        
van Rossum                  
Matsumoto                   
🔎