PROGRAMMING LANGUAGES: Texts Tennent, Semantics of Programming Languages Aho-Sethi-Ullman, Compilers: Principles, Techniques and Tools Friedman-Wand-Haynes, Essentials of Programming Languages From Tennent: Chapters 1-5. -Compositionality, Structural Induction -Hoare Logic, -Compositional Treatment of while loop as limit of sequence of approximants. -Typed lambda-calculus, lexical scope, substitution and beta-reduction -Fixed-points and recursion. How continuity ensures existence of fixed-points. -States versus environments. What's the difference? From Friedman-Wand-Haynes: Chapters 4-7. -State versus environment again -How do Lisp, Pascal, C compare on parameter passing and state/environment issues. How do they compare/differ from lambda-calculus, especially beta reduction. -Expressed versus denoted values. From Aho et al. Chapters 1-9, skim chapters 10 onwards -Parts of compilation: lexical analysis, parsing, code generation... -syntax-directed translators, recursive-descent compilers -Type checking, context-sensitive versus context-free syntax. -storage allocation, procedure calls, recursion, stacks versus heaps