Programming Languages and Theory
Catalog Description
Study of the history of programming languages and styles; programming paradigms; language features supporting parallel and distributed computing; formal language theory, special purpose languages, automata, syntax, grammars, semantics, bindings, symbol tables, data types, scoping, parameter passing, abstract data types, computability and solvability, and complexity classes; design and implementation of (part of) a compiler; simulation of theoretical machines such as finite state automata; empirical comparisons of various algorithms and programming paradigms; and utility of interactive tools and environments. Prereqs: COSC 200, COSC 210, and MATH 240, with grades of C or better. Offered: Spring.