Course Description |
Syntactic, operational and semantic issues in the mathematical analysis of programming languages. Type systems and non-context-free syntax. Universal algebra and algebraic data types. Operational semantics given by rewrite rules; confluence and termination. Scott semantics for languages with higher-type functions and recursion. Treatment of side-effects.
Prerequisites: 154 and 157 or Philosophy 151 or equivalent.