Dr. Carlo Pescio
Recensione: The Art of Computer Programming, second edition


Scheda Libro
Volume 1: fundamental algorithms
Volume 2: seminumerical algorithms
Volume 3: searching and sorting
Autore: Donald Knuth Titolo: The Art of Computer Programming, second edition
Editore: Addison-Wesley ISBN:
0-201-03809-9 (Vol 1)
0-201-03822-6 (Vol 2)
0-201-03803-X (Vol 3)
Lingua: Inglese Anno: 1980 Pagine: circa 700 ogni volume Allegati: nessuno

Commenti
I tre volumi insieme costituiscono una delle poche "opere storiche" dell’informatica: alcuni sostengono, con un fondo di ragione, che tutti i libri sugli algoritmi non siano altro che versioni divulgative dell’opera di Knuth. Opera che, nelle intenzioni dell’autore, avrebbe dovuto estendersi a sette volumi, includendo anche algoritmi combinatori, analisi sintattica, linguaggi di programmazione e compilatori; in effetti è uscita da alcuni mesi una pre-release del quarto volume, ma difficilmente Knuth riuscirà a completare la collana.

Pro
Questa è "la bibbia" sugli algoritmi: se un algoritmo è sufficientemente generale da ricadere sotto uno dei titoli dei volumi, quasi certamente qui lo troverete. La discussione di ogni algoritmo è molto formale ed approfondita: difficile trovare un’analisi migliore dei generatori di numeri casuali, e specialmente dei test di casualità, di quella presentata da Knuth sul secondo volume. Il primo volume è in sé uno dei migliori riferimenti per il calcolo della complessità degli algoritmi.
La bibliografia è veramente ampia, come si addice ad un’opera che deve necessariamente rimandare a numerosi altri lavori; purtroppo non si tratta di articoli molto aggiornati, e sono esclusi pertanto gli sviluppi più recenti di alcuni settori.

Contro
L’approccio è spesso eccessivamente formale, e l’autore tralascia spesso di menzionare le applicazioni più importanti degli argomenti presentati; in tutto il secondo volume, non è presente neppure un listato in pseudocodice, e nel terzo la situazione non è molto diversa. La scelta di usare un linguaggio assembler ipotetico per la presentazione di alcuni algoritmi è piuttosto discutibile, almeno secondo i canoni moderni di valutazione; nello stesso senso, in più di una occasione il testo tradisce le sue origini piuttosto datate (la prima edizione è stata terminata nel 1972, ed il terzo volume è tuttora fermo alla versione iniziale) discutendo ad esempio di tempi di accesso per memorie a tamburo.
Il costo è decisamente alto, pur considerando l’importanza dei volumi, ed è giustificato solo dalla fama dell’autore e del testo stesso, entrato ormai nella tradizione dell’informatica.
Chi non ama la matematica, o chi si trova in difficoltà non appena viene presentata una serie di potenze o l’aritmetica modulare, dovrebbe provare a leggere alcuni capitoli del libro prima di procedere ad un incauto acquisto.