Motivations

Designers, implementers, and serious users of a programming language need a complete and accurate understanding of the semantics (the intended meaning) as well as the syntax (the form) of every construct of that language. There is a well-developed and widely-known mathematical theory of formal languages which supports accurate description of (the context-free aspects of) the syntax of programming languages, and correct implementation of scanners and parsers. But the descriptions of context-dependent aspects of syntax (such as scope and type checking) and of semantics in reference manuals and language standards are almost always inadequate because they are based primarily on implementation techniques and intuition.

Rigorous mathematical theories of the semantics and context-dependent aspects of the syntax of programming languages are needed to support correct description and implementation of languages, systematic development and verification of programs, analysis of existing programming languages, and design of new languages that are simpler and more regular. This course is an introduction to these theories.

This page was last modified on July 21, 2014.