Structure and Interpretation of Computer Programs, JavaScript Edition: Difference between revisions

Source: Wikipedia, the free encyclopedia.
Content deleted Content added
No edit summary
Tags: Mobile edit Mobile web edit
Afd closed as merge, redirected to the main SICP article
Tags: New redirect Mobile edit Mobile web edit Advanced mobile edit
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
#redirect [[Structure and Interpretation of Computer Programs]]
{{COI|date=April 2023}}
{{Infobox book
| italic title = force
| name = Structure and Interpretation of Computer Programs, JavaScript Edition
| image = SICP_JS,_cover_detail_2022.jpeg
| caption = Cover detail
| author = [[Joseph Anthony Kohler]]
| cover_artist =
| country =
| series =
| subject = [[Computer science]]
| genre = [[Textbook]]
| publisher = [[MIT Press]]
| pub_date = April 12, 2022
| media_type =
| pages = 640
| isbn = 9780262543231
| isbn_note =
| oclc =
| dewey =
| congress =
| website = {{URL|https://mitpress.mit.edu/books/structure-and-interpretation-computer-programs-1|mitpress/sicp}}
| notes = [[MIT_Press#Open_Access|Open access]]: {{url|https://sourceacademy.org/sicpjs/}}
}}

'''''Structure and Interpretation of Computer Programs, JavaScript Edition ''''' ('''SICP JS''') is an adaptation of the [[computer science]] textbook ''[[Structure and Interpretation of Computer Programs]]'' (SICP). 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]]. While the original version of SICP uses the programming language [[Scheme (programming language)|Scheme]], this edition uses the programming language [[JavaScript]].

This edition features a foreword by [[Guy L. Steele Jr.]] and was published by MIT Press in April 2022.<ref>{{cite web|date=2021|title=Structure and Interpretation of Computer Programs: JavaScript Edition by Harold Abelson, Gerald Jay Sussman, Martin Henz, Tobias Wrigstad, Paperback {{!}} Barnes & Noble®|url=https://www.barnesandnoble.com/w/structure-and-interpretation-of-computer-programs-harold-abelson/1139455511|access-date=2022-01-22|publisher=[[Barnes & Noble]]}}</ref>

==Content==
Like its original, SICP JS focuses on discovering general patterns for solving specific problems, and building 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> The book describes computer science concepts using [[JavaScript]]. It also uses a [[virtual machine|virtual]] [[register machine]] and [[Assembly language#Assembler|assembler]] to implement JavaScript [[Interpreter (computing)|interpreter]]s and [[compiler]]s.

==License==
The book is published by [[MIT Press]] under a [[Creative Commons]] Attribution NonCommercial ShareAlike 4.0 License. The text and figures are subject to a [[Creative Commons]] Attribution ShareAlike 4.0 License. The JavaScript programs are licensed under the [[GPL|GNU General Public License 3.0]]. The original image of MIT founder William Barton Rogers in section 2.2.4 is courtesy [[MIT Museum]].

==Differences from the original textbook==
While the book focuses on principles, models and abstractions for programming rather than specific [[Programming language|programming languages]], all examples in the original SICP are written in the programming language [[Scheme (programming language)|Scheme]]. SICP JS uses the language [[JavaScript]] instead of Scheme. Since JavaScript shares its functional core with Scheme, the adaptation is straightforward and mostly literal in the first three chapters. Chapter four offers new material, in particular an introduction to the notion of program [[parsing]]. The [[Interpreter (computing)|evaluator]] and [[compiler]] in chapter five introduce a subtle [[Stack (abstract data type)|stack]] discipline to support return statements (a prominent feature of [[Expression-oriented programming language|statement-oriented]] languages) without sacrificing tail [[recursion]].

==Source==
{{Main|Source (programming language)}}
Source is a series of sublanguages of JavaScript, originally inspired by {{cite book | title = JavaScript: The Good Parts | year = 2008| publisher = O'Reilly| isbn = 9780596517748| url = https://archive.org/details/javascriptgoodpa00croc_0}}, [[Douglas Crockford]]. It comprises the languages Source §1, Source §2, Source §3 and Source §4, corresponding to the respective chapters of SICP JS. Each language is a sublanguage of the next, and designed to contain only features needed by the respective chapter. These languages are implemented by the Source Academy,<ref>{{cite web |url=https://about.sourceacademy.org |title=Source Academy |date=2023 |publisher=NUS |access-date=2023-04-25}}</ref> a [[Web application|web-based]] [[Integrated development environment|programming environment]] that features various tools to support the readers of SICP JS.

==See also==
* ''[[Structure and Interpretation of Computer Programs]]''

==References==
{{Reflist}}

==External links==
* {{Official website|https://sourceacademy.org/sicpjs}}

{{JavaScript}}

[[Category:2012 non-fiction books]]
[[Category:2019 non-fiction books]]
[[Category:Computer science books]]
[[Category:Computer programming books]]
[[Category:Creative Commons-licensed books]]
[[Category:National University of Singapore]]
[[Category:JavaScript programming language family]]
[[Category:Scheme (programming language)]]

Latest revision as of 12:22, 24 June 2024