The Art of Computer Programming
The Art of Computer Programming (TAOCP) è una serie di libri in più volumi sulla programmazione di algoritmi e la relativa analisi formale degli stessi, scritta da Donald Knuth dell'Università di Stanford.
Piano dell'opera
[modifica | modifica wikitesto]Il piano dell'opera, ancora incompleta, è mutato nel corso del tempo. Sono stati pubblicati interamente solo i primi tre volumi, mentre il primo tomo del quarto volume è stato pubblicato nel 2011:
- Volume 1, Fundamental Algorithms (terza edizione 1997) ;
- Volume 2, Seminumerical Algorithms (terza edizione 1997) ;
- Volume 3, Sorting and Searching (seconda edizione, 1998) ;
- Volume 4A, Enumeration and Backtracking (2011);
- Volume 4, Fascicolo 6 Satisfiability (Dicembre 2015);
- Volume 4, Fascicolo 5 Mathematical Preliminaries Redux, Backtracking, Dancing Links (Giugno 2017).
Gli altri due tomi previsti per il quarto volume (Combinatorial Algorithms) sono in corso di redazione. Alcune parti erano disponibili sulla pagina ufficiale.[1] In totale sono previsti sette volumi.
Storia
[modifica | modifica wikitesto]Il professor Donald E. Knuth, matematico e informatico di lungo corso, tra i massimi esperti nello studio della complessità computazionale degli algoritmi, ricevette l'incarico, nel 1962 circa, di scrivere un libro sui compilatori. Nel corso degli anni, tuttavia, il progetto iniziale mutò obiettivo e si trasformò nell'opera in oggetto. Knuth, infatti, si rese conto ben presto che avrebbe dovuto aumentare considerevolmente il numero di argomenti inclusi nel libro. Nel 1965 finì di scrivere il primo manoscritto. Si componeva di un volume unico composto di dodici capitoli e 3000 pagine manoscritte o 2000 pagine dattiloscritte. Il piano dell'opera fu così modificato in modo da includere sette volumi di uno o due capitoli ciascuno. Il libro quarto è stato ulteriormente suddiviso nei volumi 4A e 4B ed è stata pianificata un'ulteriore suddivisione nei volumi 4C, 4D, 4E e 4F.[2]
Linguaggio assembly nel libro
[modifica | modifica wikitesto]Tutti gli esempi contenuti nei libri utilizzano un linguaggio assembly denominato MIX, che viene eseguito su un ipotetico computer MIX. In seguito il computer MIX è stato sostituito dal computer MMIX, che è una versione con architettura RISC. Esistono alcuni software (tra cui GNU MDK[3]) che forniscono un'emulazione dell'architettura MIX. Knuth considera l'utilizzo del linguaggio assembly necessario per valutare la velocità e l'utilizzo della memoria degli algoritmi.
Note
[modifica | modifica wikitesto]- ^ Donald Knut, The Art of Computer Programming (TAOCP), su www-cs-faculty.stanford.edu (archiviato dall'url originale il 4 settembre 2008).
- ^ (EN) Susan D'Agostino, The Computer Scientist Who Can’t Stop Telling Stories, su Quanta Magazine, 16 aprile 2020. URL consultato il 1º novembre 2023.
- ^ (EN) GNU MDK - GNU Project - Free Software Foundation, su gnu.org. URL consultato il 1º novembre 2023.
Voci correlate
[modifica | modifica wikitesto]Collegamenti esterni
[modifica | modifica wikitesto]- (EN) Sito ufficiale, su cs.stanford.edu.
- Sito ufficiale, su www-cs-faculty.stanford.edu.