Download Fichier PDF
Transcript
viii II Sommaire Compilation de la réécriture 4 Méta-conception 51 53 4.1 Interpréteur, Compilateur et Machine abstraite . . . . . . . . . . . . . . . . . 53 4.2 Pourquoi choisir un compilateur . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.3 Compilation de la réécriture . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5 Compilation du filtrage syntaxique 61 5.1 Termes vus comme des chaı̂nes de symboles . . . . . . . . . . . . . . . . . . . 62 5.2 Automate de filtrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 5.3 Clôtures d’un ensemble de motifs . . . . . . . . . . . . . . . . . . . . . . . . . 66 5.4 Clôture réduite d’un ensemble de motifs . . . . . . . . . . . . . . . . . . . 70 5.5 Automate de filtrage à mémoire . . . . . . . . . . . . . . . . . . . . . . . . . 72 5.6 Automate de filtrage avec jumpNode . . . . . . . . . . . . . . . . . . . . . . . 75 5.7 Comparaison des différentes approches . . . . . . . . . . . . . . . . . . . . . . 78 6 Compilation du filtrage associatif-commutatif 81 6.1 Termes en forme canonique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 6.2 Approche one-to-one . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 6.3 Approche many-to-one . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 6.4 Classes de motifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 6.5 Spécialisation utilisant une structure compacte . . . . . . . . . . . . . . . . . 88 6.6 Raffinement glouton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 6.7 Calcul des substitutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 6.8 Extension à l’ensemble des motifs . . . . . . . . . . . . . . . . . . . . . . . . 95 6.9 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 7 Gestion du non-déterminisme 99 7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 7.2 Basic choice point primitives . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 7.3 Known choice point implementations . . . . . . . . . . . . . . . . . . . . . . 102 7.4 New choice point management . . . . . . . . . . . . . . . . . . . . . . . . . . 103 7.5 Imperative programming with backtracking . . . . . . . . . . . . . . . . . . . 109 7.6 Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 8 Compilation des règles et des stratégies 113 8.1 Tour d’horizon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 8.2 Solution retenue pour ELAN . . . . . . . . . . . . . . . . . . . . . . . . . . . 115