Structure and Interpretation of Computer Programs

Structure 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]
Contenuti
Il 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).
Impiego
Il 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
- ^ Wizard Book, in The New Hacker's Dictionary, 2nd, 1993..
- ^ The Top 91⁄2 Books in a Hacker's Bookshelf, in Grok code. URL consultato il 23 ottobre 2010.
- ^ SICP, MIT press..
- ^ Electrical Engineering and Computer Science | 6.001 Structure and Interpretation of Computer Programs, su OpenCourseWare, MIT, Spring 2005. URL consultato il 28 giugno 2011.
- ^ 6.0001, in Catalog, MIT..
- ^ Donald Guy, The End of an Era, in MIT Admissions (blog comment). URL consultato il 5 agosto 2008.«I talked to Professor Sussman on the phone... He said that he'd actually been trying to have 6.001 replaced for the last ten years (and I read somewhere that Professor Abelson was behind the move too). Understanding the principles is not essential for an introduction to the subject matter anymore. He sees 6.001 as obsolete».
- ^ Edward C Martin, Schools, su schemers.com, Schemers, 20 luglio 2009. URL consultato il 28 giugno 2011.
- ^ http://eduapps.mit.edu/textbook/books.html?Term=2016SP&Subject=6.945
- ^ B Harvey, Why SICP matters?, in The 150th anniversary of MIT, Boston Globe, 2011..
Bibliografia
- A critique of Abelson and Sussman or Why calculating is better than scheming (PDF), UK, Kent.
- The Structure and Interpretation of the Computer Science Curriculum (PDF), Brown.
Collegamenti esterni
- SICP, in MIT Press (official site), MIT Press. (including the full text in HTML).
- Abelson e Sussman, SICP Lectures (videos), MIT, July 1986.
- 6.001, in SICP (official site), MIT, Spring 2007. (an MIT course that goes by the same name as the book).
- Open Courseware - SICP, MIT, Spring 2005.
- SICP, MIT AI Laboratory, Technical Report 735, draft 1983-07-31