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 Jean Gallier, Andrew Hicks - University of Pennsylvania
From the table of contents: Automata; Formal Languages (A Grammar for Parsing English, Context-Free Grammars, Derivations and Context-Free Languages, Normal Forms for Context-Free Grammars, Chomsky Normal Form, ...); Computability; Current Topics.
by Robert Harper
This is a book on the foundations of programming languages. The emphasis is on the concept of type, which organizes the computational universe in the same way that the concept of set may be seen as an organizing principle for mathematics.
by Robert Harper
Provides an account of the role of type theory in programming language design and implementation. The stress is on the use of types as a tool for analyzing programming language features and studying their implementation.
by Peter Selinger - Dalhousie University
Topics covered in these notes include the untyped lambda calculus, the Church-Rosser theorem, combinatory algebras, the simply-typed lambda calculus, the Curry-Howard isomorphism, weak and strong normalization, type inference, etc.