CISD 700 Theory and Principles of Programming (4 Credits)
Syntax of programming languages by parsing to abstract syntax. Semantics of common language constructs using an interpreter: arithmetic, symbolic, and conditional expressions; blocks; lexically-scoped recursive first-class procedures; control structures; and parameter passing variations. Static type checking and type inference; imperative, functional, and object-oriented language paradigms. Recent research and current trends will be explored.