Friday, April 24, 2015

Videos for "Structure and Interpretation of Computer Programs" (1986)


  • 1A
  • 1B
  • 2A
  • 2B
  • 3A Around 1:08, the idea of program design as creating layers of languages.
  • 3B
  • 4A
  • 4B
  • 5A Interesting that they don't introduce assignment and mutability until this lecture.
  • 5B
  • 6A
  • 6B Around minute 38, a mention of Miranda, a predecessor to Haskell. Lazy evaluation as "decoupling time in the programs from time in the machine". Explanation of the disadvantages of lazy evaluation (incompatibility with side effects, "dragging tails" a.k.a. space leaks).
  • 7A Meta-circular evaluator, fixed points, Y combinator, denotational semantics.
  • 7B "There are many languages that have made a mess of themselves by adding huge numbers of features". Implementing dynamic binding and call by name.
  • 8A
  • 8B
  • 9A
  • 9B
  • 10A
  • 10B
A version of the book in .mobi format (suitable for Kindle) can be found here.