Modular Denotational Semantics
Roberto da Silva Bigonha


The primordial purpose of the words is to improve the silence
[Popular Saying]

Bibliographical Reference

R. S. Bigonha, Modular Denotational Semantics, ISBN 978-65-00-22442-9, 256 pages, 2021

Book's Prologue

Denotational semantics is a powerful and elegant formalism for describing the meaning of programming language constructs. However, it is used less than it should be. Apparently, the lack of popularity stems from the difficulties that most programmers and even computer scientists have to understand formal semantics definitions. And probably these difficulties are inherent to the way formal descriptions have been organized so far.

This book intends to contribute to the denotational model by offering means to enhance the comprehensibility of semantic descriptions of languages of realistic size. It seeks to answer the quest for legible formal semantics by proposing a semantics-definition style based on the syntactic structure of the language and on the concept of separation of concerns.

The book's thesis is that a disciplined and well structured semantic presentation will enhance comprehensibility of descriptions in the formalism, so that they would not be more complicated than ordinary computer programs written in a high level language.

This book has been designed for computer science students who have good knowledge of programming computers in high level languages. No advanced mathematics is required. Acquaintance with sets and functions is enough to grasp the basic concepts on denotational semantics.

Chapter I describes M, a meta-language specially designed and proposed to support the methodology herein described for developing modular and comprehensible presentations of denotational semantics.

Chapter II presents a complete description of the architecture of a hypothetical computer.

Chapter III presents the definition of a compiler for translating programs written in a small imperative language into the code of the machine described in the preceeding chapter.

Chapter IV presents a review of the techniques and foundations of Standard Denotational Semantics, so as to make this textbook self-contained.

Chapter V introduces a technique to mix direct and continuation semantics, in order to get the best of both worlds.

Chapter VI describes in detail a complete and modular definition of a simple and yet revelatory imperative programming language, with the objective of highlighting the methodology proposed for structuring formal definitions.

Chapter VII shows how to improve the presentation of the description developed in the preceding chapter by reorganizing it to promote even deeper separation of concerns by means of denotational components.

Chapter VIII addresses the foundations of Dana Scott's theory of domains, which underlies the denotational semantics model.

Chapter IX, the epilogue, gives the due credits to some of the pillars of the Field.

This is deliberately a very concise book on a vast and complex subject. Hopefully, this conciseness is in conformance with the ancient idea that the primordial purpose of the words is to improve the silence.