Oct 17, 2026  
2026-2027 University Catalog 
    
2026-2027 University Catalog

CS 56500 - Programming Languages


Credit Hours: 3.00.  An exploration of modern or unconventional concepts of programming languages, their semantics, and their implementations; abstract data types; axiomatic semantics using Hoare’s logic and Dijkstra’s predicate transformers; denotational semantics; functional, object-oriented, and logic programming; concurrency and Owicki-Gries theory. Example languages include ML, Ada, Oberon, LISP, PROLOG, and CSP.
Learning Outcomes
1.  Compare and contrast different approaches to specifying a programming language’s behaviors (and how they affect reasoning about programs).     2.  Specify different categories of program errors and apply language-based techniques to ensure their absence. 3.  Formalize and reason about systems in the Coq proof assistant. In particular, students will be able to: define mathematical representations of systems, state their properties in logic, and formally prove those properties hold.
Credit Hours: 3.00