| Titre : | Programmation fonctionnelle : Principes concepts lambda calcul implémentation |
| Auteurs : | A HAOUAS, Auteur |
| Type de document : | Monographie imprimée |
| Editeur : | وهران [الجزائر] : ابن خلدون للنشر والتوزيع EDIK, 2002 |
| ISBN/ISSN/EAN : | 978-9961-31-009-0 |
| Format : | 1 vol. (138 p.) / couv. ill. en coul. / 24 cm |
| Langues: | Français |
| Index. décimale : | 005.7565 |
| Résumé : | Lisp, Hope, Miranda, ML, Haskell sont tous des langages de Programmation qui opèrent en Intelligence Artificielle et peuvent être réunis sous une même thématique id est la Programmation fonctionnelle. C'est pour cette raison même que nous avons voulu faire une certaine économie et par la même une abstraction des diverses terminologies propres à chacun des langages . D'autre part, nous avons voulu balayer cette approche (Sémantique fonctionnelle) de la programmation depuis son aspect abstrait (concepts) à son aspect le plus concret à savoir son implémentation à l'aide de la S.K.I-compilation en passant par les puissants outils mathématiques que constituent le lambda-calcul, les supercombinateurs et le lambda-lifting ce qui correspond aux pointeurs en Informatique. L'étude de l'implémentation n'est volontairement pas exhaustive ( cf les G- Machines, etc... ), nous ne discutons pas non plus les divers types d'évaluation mais il nous semble que l'évaluation paresseuse est la mieux adaptée s'il s'agit d'optimiser l'espace mémoire ; il faut toutefois mentionner que les détails techniques liés à l'aspect architecturale ne font pas l'objet de notre exposé. |
| Sommaire : |
Table des matières
1 Concepts et Principes 9 1.1 Introduction 9 1.2 Invariants fondamentaux 10 1.2.1 Conséquence fondamentale 10 1.2.2 Formalisme C 1.2.3 Session 10 1.2.4 Script 11 1.2.5 Liaison 11 1.2.6 Contexte 12 1.2.7 Le processus d'évaluation 12 1.2.8 Contexte actuel 12 1.2.9 Primitives 12 1.2.10 Expressions et sous - expressions 12 1.2.11 Invariant 12 1.2.12 Conséquence fondamentale 13 1.2.13 Réduction 13 1.2.14 Représentations 14 1.2.15 Forme canonique 14 1.2.16 Valeur 14 2 Notion de type 15 2.1 Introduction 15 2.2 Typage 15 2.2.1 Types de base 15 2.2.2 Les types composés 16 2.2.3 Constructeurs de types 16 2.2.4 Types et opérations admissibles 16 2.2.5 Fonctions 2.2.6 Le type variable 2.2.7 Type polyiuorphique 2.3 Forme d'une définition de fonction 2.3.1 Curryfication 2.3.2 Section 3 Types de données de base 3.1 Introduction 3.2 Nombres 3.2.1 Opérations sur num 3.2.2 Ordre d'association 3.2.3 Opérateurs et sections 3.2.4 Section 3.3 Les booléens 3.3.1 Prédicat 3.3.2 Egalité 3.3.3 Opérateurs logiques 3.4 Caractères et strings 3.4.1 Ordre sur char 3.4.2 Strings 3.5 Les uples 3.5.1 Ordre sur les uples 3.5.2 Primitives sur les uples 3.6 Patterns 3.6.1 Exhaustivité des patterns 3.6.2 Disjonctivité des patterns 3.6.3 Styles conditionnel et équationnel 3.7 Fonctions 3.7.1 fonction d'ordre supérieur 3.7.2 Composition de fonctions 3.7.3 Opérateurs 3.7.4 Fonctions inverses 3.7.5 Fonction strictes et non strictes. 3.8 Type synonyme 3.9 Inférence de types 3.9.1 Règles d'inférence de types Listes 51 L1 Introduction 51 4_1 Liste 51 4.2.1 Propriété 1 51 4.2.2 Propriété 2 52 4.2.3 Propriété 3 52 4.2.4 Propriété 4 53 4.2.5 Propriété 5 53 4.2.6 Propriété 6 54 4.2.7 Propriété 7 54 4.3 Listes de compréhension 55 4.3.1 Ordre 56 4.3.2 Statut et champ de définition des variables 56 4.3.3 Interdépendance des variables des générateurs 56 4.3.4 Utilisation des listes de compréhension 57 1.4 Opérations sur les listes 59 4.4.1 Concaténation 59 4.4.2 Longueur d'une liste 61 4.4.3 Fonctions head et tail 62 4.4.4 Fonctions rait et last 63 4.4.5 Fonctions take et drop 64 4.4.6 Fonctions takewhile et dropwhile 65 4.4.7 Fonction zip 66 4.4.8 Indexation de listes 69 4.4.9 Liste-différence 69 4.4.10 La fonction rnap 70 4.4.11 Fonction filter 71 4.5 li-anslation de listes de compréhensions 72 4.5.1 Opérateur fold 74 4.5.2 Opérateur Scan 82 4.6 Patterns à listes 83 5 Lambda calcul 87 5.1 Introduction 87 5.2 Caractéristiques 87 5.3 Syntaxe du Lambda Calcul 88 5.4 Sémantique de l'implémentation 88 5.5 Application Fonction et Curryfication 89 5.6 Curryfication 89 5.7 Constantes et fonctions prédéfinies 91 5.8 Lambda abstraction 92 5.9 Lambda expression 93 5.9.1 Syntaxe abstraite des lambda expressions 93 5.10 Variables libres et variables liées 94 5.11 Sémantique opérationnelle du lambda calcul 95 5.11.1 Conversions 95 5.12 Sémantique des conversions 100 5.12.1 Renommage 101 5.12.2 L'application de fonction 101 5.12.3 L'élimination des lambda-abstractions redondantes . 101 5.13 Réduction 101 5.13.1 Ordre de réduction 101 5.14 Ordre normal de réduction 103 5.14.1 Théorèmes de Church- Rosser 103 6 Lambda Calcul enrichi 105 6.1 Introduction 105 6.2 Extra-constructeurs 105 6.3 Syntaxe des lambda expressions enrichies 105 6.4 Let-expressions simples 106 6.4.1 Syntaxe d'une let-expression simple 106 6.4.2 Imbrication de let-expressions 108 6.4.3 Sémantique d'une let-expression simple 109 6.5 letrec-expresions simples 109 6.5.1 Syntaxe d'une letrec-expression simple 109 6.5.2 Imbrication des letrec-expressions 110 6.5.3 Sémantique d'une letrec-expression simple 110 6.6 Translation de langage fonctionnel en lambda calcul enrichi 111 6.7 Le Schéma de Translation TE 113 7 Supercombinateurs 117 7.1 Introduction 117 7.2 Résolution du problème des variables libres 117 7.3 Supercombinateurs 118 7.3.1 Redex-supercombinateur 119 7.3.2 Supercombinateurs d'arité non nulle 119 7.3.3 Supercombinateurs d'arité zéro 120 7.4 Combinateurs 120 7.4.1 Compilation orientée•silpercombinateurs 120 7.5 Transformation de lambda-abstractions en supercombinateurs 122 7.6 Lambda-lifting 125 7.6.1 Optimisation du lambda-lifting 125 7.6.2 Ordre des paramètres 127 8 Implémentation d'un supercombinateur 129 8.1 Introduction 129 8.2 SK combinateurs 129 8.3 Schéma de la SK annpilation 130 8.4 Introduction de S, K et I 130 8.4.1 S-transformation 130 8.4.2 I-transformation 132 8.4.3 K-transformation 132 8-5 Compilation et implémentation • 134 8.6 Algorithme de la SK—compilation 134 |
| Type de document : | Livres |
Disponibilité (10)
| Cote | Support | Localisation | Statut |
|---|---|---|---|
| INF/216 | Livre | bibliothèque sciences exactes | Consultable |
| INF/216 | Livre | bibliothèque sciences exactes | Empruntable |
| INF/216 | Livre | bibliothèque sciences exactes | Empruntable |
| INF/216 | Livre | bibliothèque sciences exactes | Empruntable |
| INF/216 | Livre | bibliothèque sciences exactes | Empruntable |
| INF/216 | Livre | bibliothèque sciences exactes | Empruntable |
| INF/216 | Livre | bibliothèque sciences exactes | Empruntable |
| INF/216 | Livre | bibliothèque sciences exactes | Empruntable |
| INF/216 | Livre | bibliothèque sciences exactes | Empruntable |
| INF/216 | Livre | bibliothèque sciences exactes | Empruntable |




