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) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++