CS 331: Programming Languages
Course Description
This course provides an introduction to fundamental issues in the design and implementation of programming languages. It covers the following topics: grammars and formal syntax; the functional programming paradigm, including the MapReduce model applied to some data-parallel computations; recursion; scope and lexical structure of programs; the lambda calculus as a formal model of functional languages; writing interpreters for small languages; evaluation order and parameter-passing; type systems. Prerequisite: COMP SCI 271 with a grade of C or better. Special course fees may apply.