Vai al contenuto

Structure and Interpretation of Computer Programs

Da Wikipedia, l'enciclopedia libera.
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]

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

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]

  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.

Collegamenti esterni

[modifica | modifica wikitesto]
Controllo di autoritàVIAF (EN4605152503094110800000