Created
June 14, 2013 14:38
-
-
Save shhyou/5782353 to your computer and use it in GitHub Desktop.
Essentials of Programming Langauges 1e
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Essentials of Programming Langauges 1e | |
Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes | |
Chapter 1 Tools for Symbolic Programming | |
1.1 Simple Expressions | |
1.2 Data Types | |
1.3 Procedures | |
1.4 Summary | |
Chapter 2 Induction, Recursion, and Scope | |
2.1 Inductively Specified Data | |
2.2 Recursively Specified Programs | |
2.3 Static Properties of Variables | |
2.4 Summary | |
Chapter 3 Syntactic Abstraction and Data Abstraction | |
3.1 Local Binding | |
3.2 Logical Connectives | |
3.3 Branching | |
3.4 Records | |
3.5 Data Abstraction | |
3.6 From Procedural to Data Structure Representations | |
3.7 Summary | |
Chapter 4 Reduction Rules and Imperative Programming | |
4.1 Reasoning about Procedures | |
4.2 The Lambda Caluclus and \beta-Conversion | |
4.3 Reduction Strategies | |
4.4 Defining Recursive Procedures in the Lambda Calculus | |
4.5 Sequencing and Imperative Programming | |
4.6 Variable Assignment and Sharing | |
4.7 Streams | |
4.8 Summary | |
Chapter 5 Interpreters | |
5.1 A Simple INterpreter | |
5.2 Conditional Evaluation | |
5.3 Local Binding | |
5.4 Procedures | |
5.5 Variable Assignment | |
5.6 Recursion | |
5.7 Dynamic Scope and Dynamic Assignment | |
5.8 Summary | |
Chapter 6 Parameter Passing | |
6.1 Adding Arrays | |
6.2 Call-by-Reference | |
6.3 Call-by-Value-Result and Call-by-Result | |
6.4 Expressed or Denoted Values? | |
6.5 Call-by-Name and Call-by-Need | |
6.6 OPtional and Keyword Arguments | |
6.7 Summary | |
Chapter 7 Object-Oriented Languages | |
7.1 Objects and Classes | |
7.2 Inheritance | |
7.3 Meta-Classes | |
7.4 Summary | |
Chapter 8 Continuation-Passing Style | |
8.1 Iterative Control Behavior and Proper Tail Recursion | |
8.2 Introduction to Continuatino-Passing Style | |
8.3 Tail Form | |
8.4 Converting to Continuation-Passing Style | |
8.5 Examples of the CPS Transformation | |
8.6 Implementing the CPS Transformation | |
8.7 Call Chains | |
8.8 Summary | |
Chapter 9 Continuation-Passing Interpreters | |
9.1 Data Structure Representations of Continuations | |
9.2 The Continuation Interpreter | |
9.3 Making Continuations Available to the Programmer | |
9.4 Upward Continuations and Coroutings | |
9.5 Leaving and Entering Control Contexts | |
9.6 Dynamic Assignment Revisited | |
9.7 Summary | |
Chapter 10 Imperative Form and Stack Architecture | |
10.1 Imperative Form | |
10.2 Control Stacks | |
10.3 Interpreter Stack Architecture | |
10.4 Stack Allocation of Continuations and Environments | |
10.5 Summary | |
Chapter 11 Scanners and Parsers | |
11.1 Lexical Scanning Using Finite Automata | |
11.2 Simulating a Scanning Automaton | |
11.3 Constructing a Predictive Parser | |
11.4 Recursive Descent Parsers | |
11.5 Table-Drive Parsers | |
11.6 Summary |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment