Structure and Interpretation of Computer Programs: Difference between revisions

Content deleted Content added
Introduction
Improve readability
Line 24:
'''''Structure and Interpretation of Computer Programs''''' ('''''SICP'''''), also known as the '''wizard book''',<ref>{{Citation | contribution = Wizard Book | title = The New Hacker's Dictionary | edition = 2nd | year = 1993 | contribution-url = http://mitpress.mit.edu/sicp/}}.</ref> is a [[computer science]] textbook. It aims to teach fundamental principles of [[computer programming]], including [[recursion]], [[abstraction (computer science)|abstraction]], [[modular programming|modularity]], and [[programming language]] [[metalinguistic abstraction|design]] and [[interpreter (computing)|implementation]]. It is widely considered a classic in [[hacker culture]].<ref>{{citation | url = http://grokcode.com/11/the-top-9-in-a-hackers-bookshelf/ |title= Grok code | contribution = The Top 9{{frac |1|2}} Books in a Hacker's Bookshelf |accessdate = 2010-10-23}}</ref>
 
It was first published in 1985 by [[MIT Press]] and written by [[Massachusetts Institute of Technology]] (MIT) professors [[Harold Abelson]] and [[Gerald Jay Sussman]], with Julie Sussman. It was formerly used as the textbook of MIT's introductory programming class and at other schools. Before SICP, the introductory courses were almost always filled with learning the details of some programming language, while SICP focuses on findingdiscovering general patterns fromfor solving specific problems, and building robust software toolssystems that embodymake eachuse patternof those patterns.<ref>{{Citation | last = Harvey | first = B | year = 2011 | contribution-url = http://www.eecs.berkeley.edu/~bh/sicp.html | contribution = Why SICP matters? | title = The 150th anniversary of MIT | publisher = [[Boston Globe]]}}.</ref>
 
==Content==
UsingThe book describes core computer science concepts using [[Scheme (programming language)|Scheme]], a dialect of the [[Lisp (programming language)|Lisp]],. theIt bookalso explainsuses corea computer[[virtual sciencemachine|virtual]] concepts[[register machine]] and [[Assembly language#Assember|assembler]] to implement Lisp interpreters and [[compiler]]s.
 
The book also introduces a practical implementation of the [[register machine]] concept, defining and developing an [[Assembly language#Assember|assembler]] for such a construct, which is used as a [[virtual machine]] for the implementation of interpreters and compilers in the book, and as a testbed for illustrating the implementation and effect of modifications to the evaluation mechanism. Working Scheme systems based on the design described in this book are quite common student projects.
 
== Characters ==
Several fictional characters appear in the book:
The book uses some fictional characters repeatedly:
 
* Ben Bitdiddle. He considerably predates this class, having been created by Steve Ward for use in problem sets for its predecessor, 6.031, in the 1970s. He has since appeared in a large number of other locations, including other classes at MIT and other institutions.{{Citation needed|date= January 2012}}
* Alyssa P. Hacker:, a Lisp hacker
* Eva Lu Ator: the evaluator
* Ben Bitdiddle, a hardware expert
* Louis Reasoner: the loose reasoner
* Cy D. Fect:, Aa "reformed C programmer".
* Alyssa P. Hacker: a Lisp hacker
* Eva Lu Ator:, thean evaluator
* Cy D. Fect: A "reformed C programmer".
* Lem E. Tweakit:, an irate user of Alyssa's interval arithmetic, enters p.&nbsp;96.
* Louis Reasoner:, thea loose reasoner
 
== License ==
Line 63 ⟶ 62:
== External links ==
* [http://mitpress.mit.edu/sicp/ Official site] including textbook in HTML
* [http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ Video Lectureslectures]
 
[[Category:1985 books]]