Titlul original | (ro) Arta programării pe calculator |
---|---|
Format | Cartea Hardcover |
Include |
The Art of Computer Programming, Volume 1: Fundamental Algorithms ( d ) The Art of Computer Programming, Volume 3: Sorting and Search ( d ) The Art of Computer Programming, Volume 2: Seminumerical Algorithms ( d ) The Art of Computer Programming, Volume 4A: Algoritmi combinatori, partea 1 ( d ) |
Limba | Engleză |
Autor | Donald Knuth |
Drăguț | Informatică |
Subiect | Algoritm |
Data de lansare | 1969 |
Țară | Statele Unite |
Editor | Addison-Wesley |
Site-ul web | www-cs-faculty.stanford.edu/~knuth |
The Art of Computer Programming ( TAOCP ) este o serie de cărți pe mai multe volume despre programarea computerelor , scrisă de Donald Knuth . În 2020, doar primele trei au fost publicate integral, primul volum al celui de-al patrulea volum apărând la începutul anului 2011:
Tot în 2020, se scriu celelalte două volume planificate pentru al patrulea volum, Algoritmi combinatori . Unele piese sunt disponibile online. Sunt planificate în total șapte volume.
Donald Knuth fiind considerat un expert în scrierea compilatoarelor , a început să scrie o carte despre proiectarea compilatoarelor în 1962. În curând și-a dat seama că va trebui să extindă dramatic zona acoperită de cartea sa. În 1965, Knuth a terminat de scris prima versiune a ceea ce urma să fie un singur volum de douăsprezece capitole. Era un manuscris de 3000 de pagini. El a presupus că o pagină tastată va corespunde cu cinci pagini scrise de mână. Editorul a calculat un raport între o pagină scrisă de mână și jumătate pentru fiecare pagină tastată. Cartea ar avea deci 2 000 de pagini. Prin urmare, planul cărții a fost modificat pentru a include șapte volume de câte unul sau două capitole. Volumul 4 a fost apoi împărțit în 4A, 4B, 4C și 4D pot fi aceleași.
În 1976, Knuth a pregătit a doua ediție a volumului 2 , care trebuia reproiectat. Dar stilul de aspect nu mai era disponibil și trebuia refăcută lucrarea. În 1977, Knuth a decis să petreacă câteva luni lucrând la un nou instrument. Opt ani mai târziu, a finalizat TeX , care a fost folosit pentru toate volumele de atunci.
Faimoasa ofertă a „unui dolar hexazecimal” ca recompensă pentru corectarea oricăror erori descoperite în volumele TAOCP (prezentă din prima ediție a primului volum) a ajutat la crearea unei lucrări de foarte înaltă calitate și actualizată continuu. O altă caracteristică a acestei cărți este gradarea dificultății exercițiilor, care variază de la nivelul „încălzirii” la problemele de cercetare încă nerezolvate.
Această artă de programare promovată de Knuth constă în următorul mesaj: mai degrabă decât hacking în asamblare și salvarea programului câteva secunde (aceasta ar fi o optimizare care are meritele sale, dar care nu este nici universală, nici durabilă, deoarece depinde prea mult de mașină pe care va rula algoritmul), este mai bine să faceți un pas înapoi de la problema luată în considerare, să extrageți structurile combinatorii implicate, să studiați proprietățile tipice ale acestor structuri folosind instrumente matematice ad hoc (Knuth stabilește foarte des comportamentul în medie folosind tehnici de generare a seriilor ), care în cele din urmă permite o mai bună ascuțire a algoritmului care urmează să fie utilizat și, astfel, să aibă câștiguri gigantice de eficiență. Acesta este, de asemenea, semnificația care trebuie acordată aforismului său „Optimizarea prematură este sursa tuturor (sau aproape) tuturor relelor din programare” .
Primul volum se deschide cu o secțiune care studiază aceste instrumente (în principal combinatorii ) destinate analizei algoritmilor; Cu colaborarea lui Ronald Graham și Oren Patashnik , Knuth a dezvoltat pe larg această secțiune sub forma unui manual de combinatorie numit Matematica concretă .