From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: weis Received: (from weis@localhost) by pauillac.inria.fr (8.6.10/8.6.6) id VAA12695 for caml-redistribution; Thu, 11 May 1995 21:04:23 +0200 Received: (from weis@localhost) by pauillac.inria.fr (8.6.10/8.6.6) id VAA12679 for caml-list@pauillac.inria.fr; Thu, 11 May 1995 21:03:53 +0200 From: Pierre Weis Message-Id: <199505111903.VAA12679@pauillac.inria.fr> Subject: Nouveau livre avec Caml To: caml-list@pauillac.inria.fr Date: Thu, 11 May 1995 21:03:53 +0200 (MET DST) X-Mailer: ELM [version 2.4 PL21] Content-Type: text/plain Sender: weis ********** Annonce de livre ************* ********** Book Announcement ************* (english presentation at the bottom of the message) APPROCHE FONCTIONNELLE DE LA PROGRAMMATION Guy Cousineau et Michel Mauny Ediscience (Collection Informatique) ISBN 2-84074-114-8 (440 pages) Ce livre est principalement issu du cours de programmation donne' par le premier auteur a` l'e'cole normale supe'rieure depuis 1991. Il utilise le langage CAML un peu a` la facon dont le livre d'Abelson et Sussman utilise SCHEME, c'est-a`-dire comme support d'un cours introductif aux concepts de la programmation. Le livre est divise' en trois parties. La premie`re est une introduction progressive a` CAML et a` l'esprit de la programmation fonctionnelle. On introduit le noyau de CAML c'est-a`-dire la structure fonctionnelle et les types de donne'es puis on pose les principes de l'e'valuation par re'e'criture et on introduit la notion de strate'gie avant d'aborder les preuves de programmes. Enfin, une fois pose's les principes de la programmation fonctionnelle, on de'crit aussi les aspects non-fonctionnels de CAML. La seconde partie du livre est consacre'e a` la description d'applications relevant de diffe'rents domaines et susceptibles d'inte'resser diffe'rents types de lecteurs ou d'e'tudiants. Les domaines aborde's sont l'arithme'tique exacte (entiers,rationnels), les algorithmes sur les termes (filtrage, unification et applications), les arbres e'quilibre's pour la repre'sentation d'ensembles et de dictionnaires, les algorithmes d'exploration de graphes avec application a` des jeux a` un joueur (a^ne rouge, solitaire), l'analyse lexicale et l'analyse syntaxique, le dessin d'arbres et la re'alisation de pavages du plan. Enfin, la troisie`me partie du livre est consacre' a` l'implantation. On de'crit l'e'valuation puis la compilation en abordant succintement les proble`mes de gestion de la me'moire, et enfin la synthe`se de types. Il ne s'agit pas de'crire de facon exhaustive des implantations existantes a` destination de futurs "pros" des langages fonctionnels mais pluto^t de satisfaire la curiosite' des lecteurs qui apre`s avoir appris a` aimer CAML se demandent assez naturellement "comment ca peut marcher". La description du synthe'tiseur de types est cependant tre`s proche de celui de CAML. PLAN A. Principes de base 1. Expressions 2. Structures de donne'es 3. Se'mantique 4. Aspects impe'ratifs B. Applications 5. Arithme'tique exacte 6. Termes formels, filtrage, unification 7. Arbres e'quilibre's 8. Graphes et re'solution de proble`mes 9. Analyse syntaxique 10. Ge'ome'trie et dessins C. Implantation 11. Evaluation 12. Compilation 13. Typage ********** english description ************** This book is available only in french for the moment but should be translated to english later on. Is uses CAML somehow in the same spirit as Abelson and Sussman use SCHEME in their book "Structure and interpretation of computer programs" i.e. as a tool to introduce the main programming concepts. The book is divided in three parts. Th first part is an introduction to CAML and to the spirit of functional programming a la ML. It introduces the kernel of CAML (functional structure and data types) and then describes evaluation by rewriting, evaluation strategies and program proofs by induction. Finally, once the principles of functional programming have been stated, it describes the imperative features of CAML. The second part is dedicated to the description of application programs which belong to various fields and might interest various types of readers or students. These fields are exact arithmetic (integer, rational), algorithms on terms (pattern- matching, unification and applications), balanced trees for the implementations of sets and maps, graph traversals with application to problem solving, lexical and syntaxic analysis, tree drawing and tesselations of the plane. Finally, the third part is dedicated to implementation. It describes interpretation then compilation, with a brief description of memory management, and finally type synthesis. It does not describe an existing implementation in full details but rather emphasizes clarity and simplicity of description. The description of type synthesis however is quite close to a real implementation. SUMMARY A. Basic principes 1. Expressions 2. Data structures 3. Semantics 4. Imperative aspects B. Applications 5. Exact arithmetic 6. Fprmal terms, pattern-matching, unification 7. Balanced trees 8. Graphs and problem solving 9. Syntax analysis 10. Geometry and drawings C. Implementation 11. Evaluation 12. Compilation 13. Type synthesis