Structure and Interpretation of Computer Programs, JavaScript Edition

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, modularity, and programming language design and implementation. While the original version of SICP uses the programming language Scheme, this edition uses the programming language JavaScript.

Structure and Interpretation of Computer Programs, JavaScript Edition
Cover detail
AuthorHarold Abelson and Gerald Jay Sussman; adapted to JavaScript by Martin Henz and Tobias Wrigstad; with Julie Sussman
SubjectComputer science
GenreTextbook
PublisherMIT Press
Publication date
April 12, 2022
Pages640
ISBN9780262543231
Websitemitpress/sicp
Open access: sourceacademy.org/sicpjs/

This edition features a foreword by Guy L. Steele Jr. and was published by MIT Press in April 2022.[1]

Content edit

Like its original, SICP JS focuses on discovering general patterns for solving specific problems, and building software systems that make use of those patterns.[2] The book describes computer science concepts using JavaScript. It also uses a virtual register machine and assembler to implement JavaScript interpreters and compilers.

License edit

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 GNU 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 edit

While the book focuses on principles, models and abstractions for programming rather than specific programming languages, all examples in the original SICP are written in the 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 evaluator and compiler in chapter five introduce a subtle stack discipline to support return statements (a prominent feature of statement-oriented languages) without sacrificing tail recursion.

Source edit

Source is a series of sublanguages of JavaScript, originally inspired by JavaScript: The Good Parts. O'Reilly. 2008. ISBN 9780596517748., 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,[3] a web-based programming environment that features various tools to support the readers of SICP JS.

See also edit

References edit

External links edit