MAC.5025 Programming Languages
The course is an introduction to the formal study of programming language specification and analysis. The focus is on semantics, i.e., the meaning of programs, in languages that are specified using interpreters. Writing interpreters teaches a variety of important programming language constructs: first-class functions, lazy/eager evaluation, lexical vs. dynamic scope, continuations, controls, exceptions, and types. Different programming language constructs are added gradually and discussed. The course covers basic concepts and design tradeoffs of programming languages.