Structure and Interpretation of Computer ProgramsStructure and Interpretation of Computer Programs (comunemente noto con l'acronimo SICP, o come wizard book, "libro dello stregone", per via dell'illustrazione in copertina)[1] è un libro di testo che tratta i principi della programmazione, tra i quali astrazione, astrazione metalinguistica, ricorsione, interpreti e programmazione modulare, ed è considerato un testo classico dell'informatica.[2] La prima edizione è stata pubblicata nel 1985 da MIT Press, scritta da Harold Abelson e Gerald Jay Sussman, professori al Massachusetts Institute of Technology (MIT), insieme a Julie Sussman. La seconda edizione è del 1996. Il libro è distribuito sotto licenza Creative Commons Attribution ShareAlike 4.0.[3] ContenutiIl libro usa come linguaggio di programmazione scheme, un dialetto del lisp, e presenta molti concetti fondamentali della programmazione. Nei capitoli avanzati viene trattata anche l'implementazione di una register machine, tramite la definizione e implementazione di un assembler, usato poi come macchina virtuale per l'implementazione di interpreti e compilatori. Nel testo vengono usati alcuni personaggi ricorrenti, i cui nomi sono tipicamente assonanti a qualche concetto che impersonano, tra i quali Ben Bitdiddle (creato da Steve Ward e già usato in un corso precedente, negli anni Settanta), Eva Lu Ator (evaluator), Louis Reasoner (loose reasoner), Alyssa P. Hacker (a lisp hacker), Cy D. Fect (side effect, un "programmatore C riformato") e Lem E. Tweakit (let me tweak it). ImpiegoIl libro è stato impiegato al MIT come testo per l'omonimo corso di introduzione alla programmazione (6.001).[4] Tale corso è stato successivamente rimpiazzato da un nuovo corso (6.0001),[5] che impiega Python come linguaggio di programmazione.[6] Il testo è stato impiegato come testo anche in altre università[7] ed è usato al MIT nel corso Large Scale Symbolic Systems (6.945).[8] Molti corsi introduttivi in precedenza si concentravano tipicamente sui dettagli di qualche linguaggio di programmazione, mentre SICP cerca di trattare pattern generici per problemi specifici e di costruire strumenti software che li implementino.[9] Note
Bibliografia
Collegamenti esterni
Information related to Structure and Interpretation of Computer Programs |