Document Type

Conference Proceeding

Publication Date



This paper is for mathematicians who are curious about how topology is being used to prove computer programs correct. Those advanced parts have been limited to Sections III, V, and VI, and they are marked by a [clock symbol]. By contrast, sections II, IV, and VII are suitable as a companion to existing textbooks in a Computer Science course such as Organization of Programming Languages, the course CS 8 as described in Curriculum [1979]. Perhaps in a first reading you might read just those sections.

Among many books and articles on the semantics, or meaning, of computer languages, several now claim to be easy introductions to the topic. For example, the review by Kitchen [1989] of a book by Hennessy [1988] says that the book is "a very readable introduction wholehearted nominee for this field's principal introductory text." Instead, I find it terribly dense and unmotivated. It does not answer the most basic questions: Why does anyone care what a computer program means? What are the options for semantics (a formal meaning from other disciplines that inform our choice?

And what about professional mathematicians now pressed into service teaching Computer Science courses? Sections II, IV, and VII are meant to be an easy introduction to the semantics of computer programs, with the harder details clearly marked. I mostly wanted to say the things that I didn't find in books, so this paper is meant to supplement printed textbooks, not to replace them.


To view the content in your browser, please download Adobe Reader or, alternately,
you may Download the file to your hard drive.

NOTE: The latest versions of Adobe Reader do not support viewing PDF files within Firefox on Mac OS and if you are using a modern (Intel) Mac, there is no official plugin for viewing PDF files within the browser window.