Categories, Types, and Structures
by Andrea Asperti, Giuseppe Longo
Publisher: MIT Press 1991
Number of pages: 300
The main methodological connection between programming language theory and category theory is the fact that both theories are essentially "theories of functions." A crucial point, though, is that the categorical notion of morphism generalizes the set-theoretical description of function in a very broad sense, which provides a unified understanding of various aspects of the theory of programs. This book is mostly inspired by this specific methodological connection and its applications to the theory of programming languages. More precisely, as expressed by the subtitle, it aims at a self-contained introduction to general category theory (part I) and at a categorical understanding of the mathematical structures that constituted the theoretical background of relevant areas of language design (part II). The impact on functional programming, for example, of the mathematical tools described in part II, is well known, as it ranges from the early dialects of Lisp, to Edinburgh ML, to the current work in polymorphisms and modularity. Other applications, such as CAML, which will be described, use categorical formalization for the purposes of implementation.
Home page url
Download or read it online for free here:
by D.E. Rydeheard, R.M. Burstall
The book is a bridge-building exercise between computer programming and category theory. Basic constructions of category theory are expressed as computer programs. It is a first attempt at connecting the abstract mathematics with concrete programs.
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 - Carnegie Mellon University
What follows is a working draft of a planned book that seeks to strike a careful balance between developing the theoretical foundations of programming languages and explaining the pragmatic issues involved in their design and implementation.
by J. M. Spivey - Prentice Hall
The standard Z notation for specifying and designing software has evolved over the best part of a decade. This an informal but rigorous reference manual is written with the everyday needs of readers and writers of Z specifications in mind.