The Denotational Description of Programming Languages

An Introduction

  • Michael J. C. Gordon

Table of contents

  1. Front Matter
    Pages i-4
  2. Michael J. C. Gordon
    Pages 5-11
  3. Michael J. C. Gordon
    Pages 12-22
  4. Michael J. C. Gordon
    Pages 23-48
  5. Michael J. C. Gordon
    Pages 49-51
  6. Michael J. C. Gordon
    Pages 52-79
  7. Michael J. C. Gordon
    Pages 80-87
  8. Michael J. C. Gordon
    Pages 88-97
  9. Michael J. C. Gordon
    Pages 98-117
  10. Michael J. C. Gordon
    Pages 118-128
  11. Michael J. C. Gordon
    Pages 129-133
  12. Michael J. C. Gordon
    Pages 134-141
  13. Michael J. C. Gordon
    Pages 142-146
  14. Back Matter
    Pages 147-162

About this book


This book explains how to formally describe programming languages using the techniques of denotational semantics. The presentation is designed primarily for computer science students rather than for (say) mathematicians. No knowledge of the theory of computation is required, but it would help to have some acquaintance with high level programming languages. The selection of material is based on an undergraduate semantics course taught at Edinburgh University for the last few years. Enough descriptive techniques are covered to handle all of ALGOL 50, PASCAL and other similar languages. Denotational semantics combines a powerful and lucid descriptive notation (due mainly to Strachey) with an elegant and rigorous theory (due to Scott). This book provides an introduction to the descriptive techniques without going into the background mathematics at all. In some ways this is very unsatisfactory; reliable reasoning about semantics (e. g. correctness proofs) cannot be done without knowing the underlying model and so learning semantic notation without its model theory could be argued to be pointless. My own feeling is that there is plenty to be gained from acquiring a purely intuitive understanding of semantic concepts together with manipulative competence in the notation. For these equip one with a powerful conceptua1 framework-a framework enabling one to visualize languages and constructs in an elegant and machine-independent way. Perhaps a good analogy is with calculus: for many practical purposes (e. g. engineering calculations) an intuitive understanding of how to differentiate and integrate is all that is needed.


ALGOL Algol 60 C programming language FORTRAN Factor LISP Pascal data structures programming programming language selection semantics

Authors and affiliations

  • Michael J. C. Gordon
    • 1
  1. 1.Department of Computer ScienceUniversity of EdinburghEdinburghScotland, Great Britain

Bibliographic information

Industry Sectors
Finance, Business & Banking
IT & Software
Consumer Packaged Goods
Oil, Gas & Geosciences