The semantics of a programming language1 assigns to each program of the language its meaning. Such an assignment should be consistent, unambiguous, complete, and comprehensible. The semantics of programming languages used to be defined in English. Although these descriptions are frequently masterpieces of apparent clarity, they nevertheless usually suffer from inconsistency, ambiguity, or incompleteness. For example, the semantic model of Pascal described by Jensen and Wirth suffers from the above mentioned symptoms as has been shown by Welsh, Sneeringer, and Hoare. Instead of using English to give a semantics to a programming language, one nowadays usually takes a more rigorous, mathematical, approach. A good example is the semantics of Standard ML given by Milner, Tofte, Harper, and McQueen.
Unable to display preview. Download preview PDF.