Cahiers de Logique et d Épistémologie



Documents pareils
Magento. Pratique du e-commerce avec Magento. Christophe Le Bot avec la contribution technique de Bruno Sebarte

Créer un site e-commerce avec Dreamweaver CS4 et PHP/MySQL

Département Informatique et Données Marines Service Ingénierie des Systèmes d'informations Référence IFREMER-DCB-IDM-ISI/DDC

Les structures de données. Rajae El Ouazzani

n.paradoxa online, issue 3 May 1997

COPYRIGHT Danish Standards. NOT FOR COMMERCIAL USE OR REPRODUCTION. DS/EN 61303:1997

OUVRIR UN COMPTE CLIENT PRIVÉ

Installer le patch P-2746 et configurer le Firewall avancé

Présentation des autres éléments du résultat global

Mise en route de PRTG Network Monitor Paessler AG

Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION

ARBRES BINAIRES DE RECHERCHE

Développement d applications professionnelles avec Android 2

FORMULAIRE D OUVERTURE DE COMPTE ENTREPRISE

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Groupe Eyrolles, 2004 ISBN :

SEPA Direct Debit La domiciliation dans un marché unifié pour les paiements européens au 1er février 2014

ANDRITZ Atro Vis hydrodynamique

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

This is a preview - click here to buy the full publication NORME INTERNATIONALE INTERNATIONAL STAN DARD. Telecontrol equipment and systems

INF601 : Algorithme et Structure de données

Jean Sykes Nereus, la collaboration européenne, et le libre accès

Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION

Quelques Algorithmes simples

Mise en route de PRTG Network Monitor 8

Information Equipment

Licensed to: ichapters User

(Projet de modification )

NORME INTERNATIONALE INTERNATIONAL STANDARD. Dispositifs à semiconducteurs Dispositifs discrets. Semiconductor devices Discrete devices

EXIN Agile Scrum Master

BULLETIN DE L INSTITUT FRANÇAIS D ARCHÉOLOGIE ORIENTALE

Adobe Technical Communication Suite 5

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

(Projet de modification )

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Groupe Eyrolles, 2004, ISBN :

Big Data et Graphes : Quelques pistes de recherche

RAMOS. Etude d Application. All rights reserved, CONTEG 2013

ANNALES ISLAMOLOGIQUES

Atelier de l Ecole doctorale : Latex, Lyx, and friends Chapitre 2 : Gestion de la bibliographie

Optimisez la gestion de vos projets IT avec PPM dans le cadre d une réorganisation. SAP Forum, May 29, 2013

HUAWEI TECHNOLOGIES CO., LTD. channelroad. A better way. Together.

l'internet banking professionnel dans un environnement multibancaire Le meilleur de chaque banque

BULLETIN DE L INSTITUT FRANÇAIS D ARCHÉOLOGIE ORIENTALE

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

SUPPORTS PROMOTIONNELS : 49 MAQUETTES À PLIER Dépliants, enveloppes, flexagones, boîtes à énigmes et autres objets interactifs PAUL JACKSON

NORME INTERNATIONALE INTERNATIONAL STANDARD

Les simulations dans l enseignement des sondages Avec le logiciel GENESIS sous SAS et la bibliothèque Sondages sous R

SparkInData. Place de Marché des applications Spatiales

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Tutoriel. Google Analytics et Microsoft Office 365

données en connaissance et en actions?

Chapitre 7. Récurrences

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Utiliser un proxy sous linux

Comment consolider des données

Conduite de projets informatiques Développement, analyse et pilotage (2ième édition)

1 Recherche en table par balayage

Big Data et Graphes : Quelques pistes de recherche

RETHINKING JACQUES ELLUL AND THE TECHNOLOGICAL SOCIETY IN THE 21ST CENTURY REPENSER JACQUES ELLUL ET LA SOCIETE TECHNICIENNE AU 21EME SIECLE

L EAI. par la pratique. François Rivard. Thomas Plantain. Groupe Eyrolles, 2003 ISBN :

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

MF-Test. Les tests de non-régression de vos applications mainframe

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Comment Définir une Plage de données Pour Utiliser Fonctions de Filtres et de Tris

Comment Créer une Base de Données Ab Initio

Filtres maîtres et distribués ADSL

Manuel d utilisation

Les arbres binaires de recherche

Grandes tendances et leurs impacts sur l acquisition de produits et services TI.

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Algorithmique, Structures de données et langage C

Extended communication server 4.1 : VoIP SIP service- Administration

Conditions de l'examen

Installation d'un TSE (Terminal Serveur Edition)

This is a preview - click here to buy the full publication NORME CEI INTERNATIONALE IEC INTERNATIONAL STANDARD

La diversité culturelle en question (s)

INTERNATIONAL STANDARD NORME INTERNATIONALE

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Introduction aux concepts d ez Publish

Sommaire. Introduction. Nouveautés d Adobe InDesign CS3. Visite guidée d Adobe InDesign

Initiation. àl algorithmique et à la programmation. en C

ANNALES ISLAMOLOGIQUES

Exposé-sondage ES/2010/1. Date limite de réception des commentaires : le

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition

Les creative commons. Journée d information organisée par l ADBS le 17 décembre Julie TOMAS, Juriste TIC AEC, agence des initiatives numériques

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

This is a preview - click here to buy the full publication NORME CEI INTERNATIONALE IEC INTERNATIONAL STAN DARD

Définitions. Numéro à préciser. (Durée : )

Multiple issuers. La cotation des actions ROBECO ci-dessous est suspendue sur EURONEXT PARIS dans les conditions suivantes :

Introduction à MATLAB R

Traduction des Langages : Le Compilateur Micro Java

Algorithmique I. Algorithmique I p.1/??

chapitre 4 Nombres de Catalan

CH.6 Propriétés des langages non contextuels

SAS ENTERPRISE MINER POUR L'ACTUAIRE

Transcription:

Cahiers de Logique et d Épistémologie Volume 12 Conception et analyse des programmes purement fonctionnels Deuxième édition

Volume 6 Actions, Rationalité & Décision. Actions, Attitudes & Decision. Actes du colloque international de 2002 en hommage à J.-Nicolas Kaufmann Daniel Vanderveken et Denis Fisette, directeurs. Volume 7 Echanges franco-britanniques entre savants depuis le XVII e siècle Franco-British Interactions in Science since the Seventeenth Century Textes réunis et présentés par Robert Fox and Bernard Joly Volume 8 D l expression. Essai sur la 1ière Recherche Logique Claudio Majolino Volume 9 Logique Dynamique de la Fiction. Pour une approche dialogique Juan Redmond. Préface de John Woods Volume 10 Fiction et Métaphysique Amie L. Thomasson. Traduit de l américain par Claudio Majolino et Julie Ruelle Volume 11 Normes et Fiction Shahid Rahman et Juliele Maria Sievers, eds. Volume 12 Conception et analyse des programmes purement fonctionnels. Deuxième édition Christian Rinderknecht Cahiers de Logique et d Épistémologie Series Editors Dov Gabbay dov.gabbay@kcl.ac.uk Shahid Rahman shahid.rahman@univ-lille3.fr Assistance Technique Juan Redmond juanredmond@yahoo.fr Comité Scientifique: Daniel Andler (Paris ENS); Diderik Baetens (Gent); Jean Paul van Bendegem (Vrije Universiteit Brussel); Johan van Benthem (Amsterdam/Stanford); Walter Carnielli (Campinas-Brésil); Pierre Cassou- Nogues (Lille 3 UMR 8163-CNRS); Jacques Dubucs (Paris 1); Jean Gayon (Paris 1); François De Gandt (Lille 3 UMR 8163-CNRS); Paul Gochet (Liège); Gerhard Heinzmann (Nancy 2); Andreas Herzig (Université de Toulouse IRIT: UMR 5505-NRS); Bernard Joly (Lille 3 UMR 8163- CNRS); Claudio Majolino (Lille 3 UMR 8163-CNRS); David Makinson (London School of Economics); Tero Tulenheimo (Helsinki); Hassan Tahiri (Lille 3 UMR 8163-CNRS).

Conception et analyse des programmes purement fonctionnels Deuxième édition Christian Rinderknecht

Individual author and College Publications 2012. Second Edition 2012. All rights reserved. ISBN 978-1-84890-076-9 College Publications Scientific Director: Dov Gabbay Managing Director: Jane Spurr King s College London, Strand, London WC2R 2LS, UK http://www.collegepublications.co.uk Original cover design by orchid creative www.orchidcreative.co.uk Printed by Lightning Source, Milton Keynes, UK All rights reserved. No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form, or by any means, electronic, mechanical, photocopying, recording or otherwise without prior permission, in writing, from the publisher.

Table des matières Avant-propos xi 1 Introduction 1 1.1 Systèmes de réécriture.................... 1 1.2 Arbres pour illustrer les termes............... 4 1.3 Langages purement fonctionnels............... 5 1.4 Analyse des algorithmes................... 8 Coût exact.......................... 9 Extremums du coût...................... 9 Coût moyen.......................... 9 Coût amorti.......................... 10 1.5 Preuves par induction.................... 13 Induction bien fondée.................... 13 Terminaison.......................... 14 1.6 Réalisation de logiciel.................... 15 Traduction en Erlang..................... 15 Traduction en Java...................... 16 I Structures linéaires 19 2 Fondamentaux 21 2.1 Concaténation......................... 21 Forme terminale....................... 28 2.2 Retournement......................... 38 2.3 Filtrage de pile........................ 44 2.4 Aplatissement......................... 56 Terminaison.......................... 61 2.5 Files d attente......................... 62 Coût amorti.......................... 68 2.6 Découpage........................... 69 Correction........................... 71 v

vi TABLE DES MATIÈRES 2.7 Persistance.......................... 72 2.8 Tri optimal.......................... 83 3 Tri par insertion 95 3.1 Insertion simple........................ 95 Coût.............................. 96 Correction........................... 99 Terminaison.......................... 104 3.2 Insertion bidirectionnelle................... 105 Extremums du coût...................... 107 Coût moyen.......................... 111 3.3 Insertion bidirectionnelle équilibrée............. 114 Coût minimum........................ 115 Coût moyen.......................... 117 4 Tri par interclassement 119 4.1 Interclassement........................ 120 4.2 Trier 2 n clés.......................... 128 4.3 Tri descendant........................ 131 Coût minimum........................ 131 Coût maximum........................ 137 Coût moyen.......................... 139 4.4 Tri ascendant......................... 142 Coût minimum........................ 143 Coût maximum........................ 143 Coût moyen.......................... 147 Programme.......................... 153 4.5 Comparaison......................... 156 Coût minimum........................ 156 Coût maximum........................ 157 Coût moyen.......................... 160 Interclassement ou insertion................. 164 4.6 Tri en ligne.......................... 165 5 Recherche de motifs 173 5.1 Recherche naïve........................ 174 Coût.............................. 177 5.2 Algorithme de Morris et Pratt................ 179 Prétraitement......................... 183 Recherche........................... 186 Coût.............................. 186 Métaprogrammation..................... 187

TABLE DES MATIÈRES vii Variante de Knuth...................... 189 II Structures arborescentes 191 6 Arbres de Catalan 193 6.1 Énumeration......................... 194 6.2 Hauteur moyenne....................... 196 6.3 Longueur moyenne des chemins............... 201 7 Arbres binaires 209 7.1 Parcours............................ 212 Préfixe............................. 212 Infixe.............................. 224 Postfixe............................ 229 Parcours des niveaux..................... 232 7.2 Formes classiques....................... 242 7.3 Codages d arbres....................... 244 7.4 Parcours aléatoires...................... 247 7.5 Dénombrement........................ 250 Longueur moyenne des chemins............... 254 Hauteur moyenne....................... 255 Largeur moyenne....................... 256 8 Arbres binaires de recherche 257 8.1 Recherche........................... 259 Coût moyen.......................... 260 La variante d Andersson................... 262 8.2 Insertion............................ 264 Insertion de feuilles...................... 264 Coût moyen.......................... 265 Coût amorti.......................... 269 Insertion d une racine.................... 271 Coût moyen.......................... 280 Coût amorti.......................... 281 8.3 Suppression.......................... 282 8.4 Paramètres moyens...................... 283 III Réalisation 285 9 Traduction en Erlang 287 9.1 Mémoire............................ 293

viii TABLE DES MATIÈRES Synonymie........................... 303 Pile de contrôle et tas.................... 305 Optimisation des appels terminaux............. 308 Transformation en forme terminale............. 311 9.2 Fonctions d ordre supérieur................. 339 Tri polymorphe........................ 339 Listes d associations ordonnées............... 344 Mappage et compositions itérées.............. 347 Codages fonctionnels..................... 356 Combinateurs de point fixe................. 362 Continuations......................... 368 10 Traduction en Java 377 10.1 Liaison dynamique...................... 379 10.2 Méthodes binaires...................... 386 11 Introduction à XSLT 393 11.1 Documents.......................... 394 XML...394 HTML...411 XHTML...415 DTD...415 11.2 Introduction.......................... 417 11.3 Transformation de séquences................ 423 Longueur........................... 424 Somme............................. 433 Filtrage............................ 438 Retournement......................... 446 Valeurs ponctuées....................... 450 Entrecoupement....................... 456 Maximum........................... 461 Réduction........................... 464 Interclassement........................ 466 11.4 Transformation d arbres................... 469 Taille.............................. 469 Somme............................. 474 Réflexion........................... 476 Hauteur............................ 486 Numérotation......................... 491 Tri des feuilles......................... 498 Bibliographie 505

TABLE DES MATIÈRES ix Index 521