Structure and Interpretation of Computer Programs: Difference between revisions

Content deleted Content added
rm links to redirected page
Tags: Mobile edit Mobile web edit Advanced mobile edit
Copyedit. Expand US postal abbreviations.
Line 7:
| caption = Cover of the second edition
| author = [[Harold Abelson]], [[Gerald Jay Sussman]], Julie Sussman
| cover_artist =
| country =
| series =
| subject = [[Computer science]]
| genre = [[Textbook]]
| publisher = [[MIT Press]]
| pub_date = 1984 (1st ed.), 1996 (2nd ed.), 2022 ([[Structure and Interpretation of Computer Programs, JavaScript Edition|JavaScript ed.]])
| media_type =
| pages = 657
| isbn = 0-262-51087-1
| isbn_note = (2nd ed.)
| oclc =
| dewey =
| congress = QA76.6 .A255 1996
| website = {{URL|mitpress.mit.edu/sicp}}
}}
 
'''''Structure and Interpretation of Computer Programs''''' ('''''SICP''''') is a [[computer science]] textbook by [[Massachusetts Institute of Technology]] professors [[Harold Abelson]] and [[Gerald Jay Sussman]] with Julie Sussman. It is known as the "Wizard Book" in [[hacker culture]].<ref>{{Cite book |last=Raymond |first=Eric S. |url=http://archive.org/details/newhackersdictio00raym |title=The New hacker's dictionary |last2=Steele |first2=Guy |date=1991 |publisher___location=Cambridge, Mass.Massachusetts| :publisher = MIT Press |others=Internet Archive |isbn=978-0-262-68069-1}}</ref> It teaches fundamental principles of [[computer programming]], including [[recursion]], [[Abstraction (computer science)|abstraction]], [[Modular programming|modularity]], and [[programming language]] [[Metalinguistic abstraction|design]] and [[Programming language implementation|implementation]].
 
[[MIT Press]] published the first edition in 1984, and the second edition in 1996. It was formerly used as the textbook for MIT's introductory course in [[computer science]]. SICP focuses on discovering general [[Pattern|patterns]] for solving specific problems, and building [[Software system|software systems]] that make use of 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>
Line 36:
 
=== Chapter 1: Building [[Abstraction (computer science)|Abstractions]] with [[Function (computer programming)|Procedures]] ===
# The Elements of Programming
 
# Procedures and the [[Process (computing)|Processes]] They Generate
# The Elements of Programming
# Formulating Abstractions with Higher-Order Procedures
# Procedures and the [[Process (computing)|Processes]] They Generate
# Formulating Abstractions with Higher-Order Procedures
 
=== Chapter 2: Building Abstractions with [[Data]] ===
# Introduction to Data Abstraction
 
# Introduction to Data Abstraction
# Hierarchical Data and the [[Closure (mathematics)|Closure Property]]
# Symbolic Data
# Multiple Representations for Abstract Data
# Systems with Generic Operations
 
=== Chapter 3: Modularity, [[Object (computer science)|Objects]], and [[State (computer science)|State]] ===
# [[Assignment (computer science)|Assignment]] and [[Local variable|Local State]]
# The Environment Model of Evaluation
# Modeling with Mutable Data
# [[Concurrency (computer science)|Concurrency]]: Time Is of the Essence
# Streams
 
=== Chapter 4: [[Metalinguistics|Metalinguistic]] Abstraction ===
Line 64 ⟶ 62:
=== Chapter 5: Computing with [[Register machine|Register Machines]] ===
# Designing [[Register machine|Register Machines]]
# A Register-Machine Simulator
# [[Register allocation|Storage Allocation]] and [[Garbage collection (computer science)|Garbage Collection]]
# The Explicit-Control Evaluator
# Compilation
 
== Characters ==