Spring 1999 - Michael Elhadad
(Fall 1998) Advanced Topics in Programming Languages
Assignments
Lecture Notes
- Week 1: Scheme - quick review:
recursion, syntactic abstraction. Syntactic description with BNF, Deriving
Programs from BNF specifications.
- Week 2: lambda calculus - Free
variables vs. bound variables. beta reduction.
- Week 3: alpha reduction. Variable
renaming. eta conversion. Reduction strategies. Applicative order.
Church-Rosser Theorem.
- Week 4: Recursion in $\lambda$
calculus and the Y-operator. Approaches to Semantics of Programming
Languages: operational, structured operational, denotational semantics.
Reasoning about programs, program transformations. Language vs.
Meta-language. Expressed values vs. Denoted values.
- Week 5: Interpreters: base
interpreter. Adding conditionals. Local bindings. Procedures. Variable
assignment. (Simple) recursion. Dynamic scope vs. static scope.
Last modified Mar 23rd, 1999
Michael Elhadad