MSc in Computation courses

Algebraic Semantics

Optional course, 16 lectures in Hilary Term
Prof J Goguen and Dr G Malcolm


Roughly speaking the most popular approaches to the semantics of imperative languages divide into two groups: the axiomatic and the denotational. The approach described in these lectures might be called algebraic denotational semantics. We give an equational specification for a class of abstract machines, and then define the semantics of programs by their effects on the states of these machines. An advantage of this approach is that it admits as models any desired organisation of memory, such as cache or disc. This is achieved by axiomatising the properties that any suitable storage must have. This approach allows us to give rules for mechanically proving the correctness of programs.


Algebraic specification of imperative programs, correctness, invariants, abstract data types, OBJ3, mechanical verification.