Skip to content

Instantly share code, notes, and snippets.

@shhyou
Created June 14, 2013 14:45
Show Gist options
  • Save shhyou/5782426 to your computer and use it in GitHub Desktop.
Save shhyou/5782426 to your computer and use it in GitHub Desktop.
Essentials of Programming Langauges 3e
Essentials of Programming Langauges 3e
Daniel P. Friedman and Mitchell Wand
Chapter 1 Inductive Sets of Data
1.1 Recursively Specified Data
1.2 Deriving Recursive Programs
1.3 Auxiliary Procedures and Context Arguments
1.4 Exercises
Chapter 2 Data Abstraction
2.1 Sepcifying Data via Interfaces
2.2 Representation Strategies for Data Types
2.3 Interfaces for Recursive Data Types
2.4 A Tool for Definig Recursive Data Types
2.5 Abstract Syntax and Its Representation
Chapter 3 Expressions
3.1 Specification and Implementation Strategy
3.2 LET: A Simple Langauge
3.3 PROC: A Language with Procedures
3.4 LETREC: A Language with Recursive Procedures
3.5 Scoping and Binding of Variables
3.6 Eliminating Variable Names
3.7 Implementing Lexical Addressing
Chapter 4 State
4.1 COmputational Effects
4.2 EXPLICIT-REFS: A Langauge with Explicit References
4.3 IMPLICIT-REFS: A Language with Implicit References
4.4 MUTABLE-PAIRS: A Language with Mutable Pairs
4.5 Parameter-Passing Variations
Chapter 5 COntinuation-Passing Interpreters
5.1 A Continuation-Passing Interpreter
5.2 A Trampolined Interpreter
5.3 An Imperative Interpreter
5.4 Exceptions
5.5 Threads
Chapter 6 Continuation-Passing Style
6.1 Writing Programs in Continuation-Passing Style
6.2 Tail Form
6.3 Converting to Continuation-Passing Style
6.4 Modeling Computational Effects
Chapter 7 Types
7.1 Values and Their Types
7.2 Assigning a Type to an Expression
7.3 CHECKED: A Type-Checked Langauge
7.4 INFERRED: A Language with Type Inference
Chapter 8 Modules
8.1 The Simple Module System
8.2 modules That Declare Types
8.3 Module Procedures
Chapter 9 Objects and Classes
9.1 Object-Oriented Programming
9.2 Inheritance
9.3 The Language
9.4 The Interpreter
9.5 A Typed Language
9.6 The Type Checker
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment