Like programs, programming languages are not only mathematical objects but also software engineering artifacts. Describing the semantics of real-world languages can help bring language theory to bear on both exciting and important realworld problems. Achieving this is not purely a mathematical task, but equally one of (semantic) engineering. Categories and Subject Descriptors D.3.1 [Prog. Lang.]: Formal Definitions and Theory General Terms Languages