CSc 81010 - Semantics of Software Systems

Thursdays 630-830 PM, Fall'03
Subash Shankar

Formal semantics of software systems are needed for applications such as software verification, automated software engineering tools, and programming language design/analysis.  There are several mathematical models of programming languages that have been used to capture such semantics.  More recently, there are mathematical models to represent software semantics for use in formal methods.

The first part of this course provides an overview of classical approaches to programming language semantics, including axiomatic and denotational semantics along with Floyd/Hoare logics.  The second part of the course discusses more recent research on generating operational semantics of software systems for use in model checking and software verification.

The course will be of interest to those considering research in formal methods, software engineering, and/or programming languages.  There are no formal prerequisites, other than an enjoyment of mathematics and logic.