Structure and Interpretation of Computer Programs

Structure and Interpretation of Computer Programs, also known as SICP or the "wizard book", by Hal Abelson and Jerry Sussman, is a classic book in computer science that introduces fundamental concepts of programming.

The book is still in print and is also available for free online.

The book starts out by introducing the base elements of programming – values, names, binding, control, and so on – and then expands to explore a breadth of topics including:

  • Lambda abstraction and higher-order computation

  • Complex structures, including those with embedded computational content

  • Modularity

  • Mutability

  • Streams

  • Lazy evaluation

  • Interpreter and compiler construction

  • Storage management, garbage collection, and virtual memory

  • Machine code

  • Domain-specific languages