Denotational Semantics: A Methodology for Language Development
by David Schmidt
Publisher: Kansas State University 2009
Number of pages: 304
Denotational semantics is a methodology for giving mathematical meaning to programming languages and systems. It was developed by Christopher Strachey's Programming Research Group at Oxford University in the 1960s. The method combines mathematical rigor, due to the work of Dana Scott, with notational elegance, due to Strachey. Originally used as an analysis tool, denotational semantics has grown in use as a tool for language design and implementation. This book was written to make denotational semantics accessible to a wider audience and to update existing texts in the area. It presents the topic from an engineering viewpoint, emphasizing the descriptional and implementational aspects. The relevant mathematics is also included, for it gives rigor and validity to the method and provides a foundation for further research.
Home page url
Download or read it online for free here:
by Tobias Nipkow, Gerwin Klein - Springer
The book teaches the reader the art of precise logical reasoning and the practical use of a proof assistant as a tool for formal proofs about computer science artefacts. All the mathematics is formalised in Isabelle and much of it is executable.
by Eric C.R. Hehner - Springer
Understanding programming languages requires knowledge of the underlying theoretical model. This book explores aspects of programming that are amenable to mathematical proof. It describes a simple and comprehensive theory.
by Mira Balaban - Ben-Gurion University of the Negev
This course is about building computational processes. We need computational processes for computing functions. The means for performing computational processes are programs. The emphasis is on programming languages and their properties.
by Simon Peyton Jones, David Lester - Prentice Hall
This book gives a practical approach to understanding implementations of non-strict functional languages using lazy graph reduction. It is intended to be a source of practical material, to help make functional-language implementations come alive.