Semantics of programming languages: Using Asf+Sdf - Peter Mosses (Science of Computer Programming, 2013)
A semantic specification of a programming language can be relevant for programmers to understand software written in the language, as well as for the implementers of a language to understand the intentions of its designers. In the early 1980s, Jan Heering and Paul Klint envisioned complete language specifications as libraries of reusable individual constructs, supported by a generic programming environment. This led to the development of the Asf+Sdf specification language and its Meta-Environment.This paper first recalls how programming languages can be specified in Asf+Sdf. It then analyses the apparent difficulty of reusing the specifications of individual constructs, and considers some alternative styles of semantics that have been supported using Asf+Sdf and its Meta-Environment. It is suggested that these alternative styles could facilitate reuse when specifying programming languages in Rascal, which has superseded Asf+Sdf.