An Axiomatic Semantics of Concurrent Programming Languages

Logics and Models of Concurrent Systems, Krzysztof Apt, editor. Springer-Verlag, Berlin | , pp. 77-122

This paper appeared in a workshop held in Colle-sur-Loup, in the south of France, in October, 1984. There is a long history of work on the semantics of programming languages. When people began studying concurrency in the 70s, they naturally wrote about the semantics of concurrent languages. It always seemed to me that defining the semantics of a concurrent language shouldn’t be very hard. Once you know how to specify a concurrent system, it’s a straightforward task to give a semantics to a concurrent programming language by specifying the programs written in it. Writing this paper allowed me to demonstrate that writing a semantics is as easy as I thought it was. What I did discover from writing the paper is that the semantics of programming languages is a very boring subject. I found this paper boring to write; I find it boring to read. I have never worked on the semantics of programming languages again.