The second, thoroughly revised, edition of my monograph
Categorical combinators, Sequential algorithms and Functional
programming, by P.-L. Curien
just appeared in the series Progress in Theoretical Computer Science,
Birkhauser.
I enclose the contents of the back cover, the table of contents, and
the preface to the second edition, to give an idea of the contents and
of the improvements with respect to the first edition. Order and
price info are given at the end.
------------------------------------------------------
BACK COVER
This book is a thoroughly revised edition of a monograph that appeared
under the same title in 1986 in the Series Research Notes in
Theoretical Computer Science, Pitman. It presents an approach to the
design and implementation of sequential programming languages based on
the relationship between lambda-calculus and category theory.
The foundations of a new "categorical" combinatory logic are laid
down. Compilation and evaluation techniques are investigated. A simple
abstract machine, called the Categorical Abstract Machine, is
presented: it has served as the core of the implementation of the
language CAML, of the ML family, developped at INRIA-Roquencourt and
Ecole Normale Supe'rieure, and first released in 1987. The main
characteristics of this approach are conceptual simplicity and
compacity, with bearings on portability, efficiency, and correctness
proofs.
A mathematical semantics of sequentiality is proposed, in which
"sequential algorithms" rather than functions are used to interpret
procedures. The theoretical investigation has led to the development
of a programming language, {bold CDS0}, in which basic and functional
types are not differentiated. The evaluation framework is a
demand-driven data flow network. The model of sequential algorithms is
fully abstract with respect to this language: two procedures have the
same denotation if and only if they have the same behaviour.
Background on full abstraction is given.
The new edition covers new results, and introduces new connections, as
suggested by the following non exhaustive list of keywords: confluence
properties of categorical combinators, explicit substitutions, control
operations, linear logic, geometry of interaction, strong stability.
-------------------------------------------------
TABLE OF CONTENTS
PREFACE TO THE SECOND EDITION
PREFACE
TABLE OF DEPENDENCIES
INTRODUCTION
1. CATEGORICAL COMBINATORS
1.1 Introducing categorical combinators
1.2 lambda-calculus and untyped categorical combinatory logic
1.3 Types and cartesian closed categories
1.4 From untyped calculus to typed calculus: axiomatizing a
universal type
1.5 Models of the %lbd%-calculus
1.6 Equivalences of presentations
1.7 Evaluation of categorical terms
1.8 Discussion
2. SEQUENTIAL ALGORITHMS
2.1 Concrete data structures
2.2 Representation theorems
2.3 Domain equations
2.4 Sequential functions
2.5 Sequential algorithms
2.6 The category of concrete data structures and sequential
algorithms
2.7 Discussion
3. CDS0: THE KERNEL OF A FUNCTIONAL LANGUAGE
3.1 Declaring concrete data structures
3.2 The language of constants: states and sequential
algorithms
3.3 The language of expressions
3.4 Operational semantics: presentation
3.5 Operational semantics: the rules of CDS01
3.6 Full abstraction for CDS01
3.7 Discussion
4. THE FULL ABSTRACTION PROBLEM
4.1 The languages PCF, PCFP and PCFC
4.2 Sequential algorithms and extensionality: the bicds's
4.3 Complete bicds's
4.4 Extensional algorithms and definability
4.5 Discussion
5. CONCLUSION
6. MATHEMATICAL PREREQUISITES
REFERENCES
INDEX OF DEFINITIONS
INDEX OF SYMBOLS
-------------------------------------------------
PREFACE TO THE SECOND EDITION
This book is a revised edition of the monograph which appeared under
the same title in the series Research Notes in Theoretical Computer
Science, Pitman, in 1986. In addition to a general effort to improve
typography, English, and presentation, the main novelty of this
second edition is the integration of some new material. Part of it is
mine (mostly jointly with coauthors). Here is brief guide to these
additions.
- I have augmented the account of categorical combinatory logic with
a description of the confluence properties of rewriting systems of
categorical combinators (Hardin, Yokouchi), and of the newly
developed calculi of explicit substitutions (Abadi, Cardelli, Curien,
Hardin, Le'vy, and Rios), which are similar in spirit to the
categorical combinatory logic, but are closer to the syntax of
%lbd%-calculus (Section 1.2).
- The study of the full abstraction problem for PCF and extensions of
it has been enriched with a new full abstraction result: the model of
sequential algorithms is fully abstract with respect to an extension
of PCF with a control operator (Cartwright, Felleisen, Curien). An
order-extensional model of error-sensitive sequential algorithms is
also fully abstract for a corresponding extension of PCF with a
control operator and errors (Sections 2.6 and 4.1).
- I suggest that sequential algorithms lend themselves to a
decomposition of the function spaces that leads to models of linear
logic (Lamarche, Curien), and that connects sequentiality with games
(Joyal, Blass, Abramsky) (Sections 2.1 and 2.6).
- There is even more to the connection with linear logic:
the operational semantics of sequential algorithms, formalized in
Chapter 3, bears striking similarities with the geometry of
interaction, developed for linear logic by Girard in 1988. In Section
3.4, I have included a prologue and a picture to help conveying this
conceptual similarity.
- I include a short description of some results of Bucciarelli and
Ehrhard, who have proposed a more abstract theory of sequential
algorithms (Section 2.4), an extensional (but not order-extensional)
notion of strong stability, that is closed under exponentiation and
coincides with sequentiality at first order
(Section 2.6), and a method of order-extensional embedding (Section
4.4).
- These results are reported mostly in the form of exercises. I have
decorated some exercises with a star to stress that their solution
represents a significant work. The reader can use them as a quick
reference to the source papers.
Here are a few other new works that I account for:
- adaptations of abstract environment machines to carry out full
normalization of %lbd%-terms (Cre'gut, Asperti, Curien) (Section
1.2);
- a hierarchical coherence theorem whose proof by Lafont gives as a
side-effect a proof of termination of the execution of simply typed
terms by the categorical abstract machine (Section 1.3);
- the inability of graph reduction of categorical combinators to
implement optimal sharing of reductions (Curien, Field, Le'vy)
(Section 1.7);
- further results on representation theorems for event domains, and
solutions of domain equations (Droste) (Sections 2.2 and 2.3);
- the striking connection between (extensional) sequential algorithms
and the oracle semantics of higher-order recursion theory developed
by Kleene in the last years of his scientific career (Section 2.7);
- the works of Brookes and Geva on various approaches to intensional
continuous semantics (Section 2.7);
- the use of logical relations to obtain a full abstraction result
for order up to 3 (Sieber) (Sections 4.1 and 4.2).
...
--------------------------------------------------------
To order:
in North America call (201) 348-4033, or write Birkhaeuser,
44 Hartz Way, Secaucus, NJ 07096-2491.
outside North America, please contact Birkhaeuser Verlag AG,
Klosterberg 23, CH-4010, Basel, Switzerland.
FAX 061 271 7666.
Price: $64.50 (US dollars) (hardcover only)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++