pl-semantics-and-types

Programming Languages: Semantics and Types

CIS 7000-01 Fall 2025

Course Description

What makes a programming language useful, expressive, safe, or even elegant? How can we evaluate the features of modern programming languages and understand what they can do and how they relate? This course takes a mathematical approach to understanding programming language designs, focusing on their dynamic semantics and static type systems. We’ll rigorously define what programs mean using operational, denotational, and relational semantics, then dive into the expressive power of type theories to provide an abstract view of computation.

Course Information

Topics