Programming Languages Theory and Practice
This note explains the 
following topics: Transition Systems, Defining a Language, A Functional 
Language, Control and Data Flow, Imperative Functional Programming, Cost 
Semantics and Parallelism, Data Structures and Abstraction, Lazy Evaluation, 
Dynamic Typing, Subtyping and Inheritance, Storage Management.
Author(s): Robert Harper
277 Pages