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]

Copertina della seconda edizione

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]

ContenutiModifica

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).

ImpiegoModifica

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]

NoteModifica

  1. ^ Wizard Book, in The New Hacker's Dictionary, 2nd, 1993..
  2. ^ The Top 912 Books in a Hacker's Bookshelf, in Grok code. URL consultato il 23 ottobre 2010.
  3. ^ SICP, MIT press..
  4. ^ Electrical Engineering and Computer Science | 6.001 Structure and Interpretation of Computer Programs, su OpenCourseWare, MIT, Spring 2005. URL consultato il 28 giugno 2011.
  5. ^ 6.0001, in Catalog, MIT..
  6. ^ Donald Guy, The End of an Era, in MIT Admissions (blog comment). URL consultato il 5 agosto 2008 (archiviato dall'url originale il 24 giugno 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».
    .
  7. ^ Edward C Martin, Schools, Schemers, 20 luglio 2009. URL consultato il 28 giugno 2011.
  8. ^ http://eduapps.mit.edu/textbook/books.html?Term=2016SP&Subject=6.945
  9. ^ B Harvey, Why SICP matters?, in The 150th anniversary of MIT, Boston Globe, 2011..

BibliografiaModifica

Collegamenti esterniModifica

  • 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. URL consultato il 10 dicembre 2016 (archiviato dall'url originale il 22 settembre 2016). (an MIT course that goes by the same name as the book).
  • Open Courseware - SICP, MIT, Spring 2005.
  • SICP[collegamento interrotto], MIT AI Laboratory, Technical Report 735, draft 1983-07-31
Controllo di autoritàVIAF (EN4605152503094110800000
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica