CS 678 Programming Language Semantics
Introduction to the formal mathematical study of program meaning (semantics), using one or more approaches such as operational semantics, denotational semantics, or programming logics. Emphasis on rigorous mathematical development and formal proof techniques. Language features to be studied may include types and type safety, purity and imperative effects, functional and modular abstraction, polymorphism, higher-order functions, and object-oriented features. Also offered as CS 578 and may be taken only once for credit. Expected preparation: CS 558 and/or CS 557.