Overview

Formal syntax and semantics provide the basis for understanding programming languages and programs. Mathematically precise definitions of programming languages allow us to uncover misconceptions, contradictions in language specifications, and more importantly, rigorous definitions of semantics allows us to reason about the behaviour of programs. Verification of language-level implementations is impossible without having a formal semantics for the language.