Structure and Interpretation of Computer Programs

Copertina della seconda edizione

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

  1. ^ Wizard Book, in The New Hacker's Dictionary, 2nd, 1993. URL consultato il 4 maggio 2019 (archiviato dall'url originale il 21 dicembre 2015).
  2. ^ The Top 912 Books in a Hacker's Bookshelf, in Grok code. URL consultato il 23 ottobre 2010.
  3. ^ SICP, MIT press. URL consultato il 4 maggio 2019 (archiviato dall'url originale il 21 dicembre 2015).
  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 (archiviato dall'url originale il 28 novembre 2006).
  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, su schemers.com, Schemers, 20 luglio 2009. URL consultato il 28 giugno 2011 (archiviato dall'url originale il 30 marzo 2009).
  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.

Bibliografia

  • A critique of Abelson and Sussman or Why calculating is better than scheming (PDF), GB, Kent.
  • The Structure and Interpretation of the Computer Science Curriculum (PDF), Brown.

Collegamenti esterni

  • (EN) Sito ufficiale, su mitpress.mit.edu. Modifica su Wikidata
  • (EN) Edizioni e traduzioni di Structure and Interpretation of Computer Programs, su Open Library, Internet Archive. Modifica su Wikidata
  • (EN) Structure and Interpretation of Computer Programs, su Goodreads. Modifica su Wikidata
  • SICP, in MIT Press (official site), MIT Press. URL consultato il 4 maggio 2019 (archiviato dall'url originale il 21 dicembre 2015). (including the full text in HTML).
  • Abelson e Sussman, SICP Lectures (videos), MIT, luglio 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. URL consultato il 10 dicembre 2016 (archiviato dall'url originale il 28 novembre 2006).
Controllo di autoritàVIAF (EN) 4605152503094110800000
  Portale Informatica
  Portale Letteratura