Dans la partie frontale d'un compilateur, il est souvent usuel de transformer l'arbre syntaxique concret correspondant à la grammaire utilisée lors de l'analyse syntaxique en un arbre simplifié appelé arbre syntaxique abstrait qui retient uniquement l'essentiel des éléments de l'arbre syntaxique concret et qui par ailleurs est plus approprié pour les étapes ultérieures de la compilation. La réalisation d'une telle transformation avec les générateurs de compilateurs traditionnels peut nécessiter d'écrire une quantité considérable de code répétitif et très enclin aux erreurs dans la grammaire. Dans ce mémoire, nous introduisons un nouveau mécanisme pour spécifier des transformations d'un arbre syntaxique concret vers un arbre syntaxique abstrait durant l'analyse syntaxique. Doté d'une syntaxe intuitive, ce mécanisme permet la spécification de transformations ascendantes de manière efficace et déterministe. De plus, des vérifications effectuées sur ces transformations garantissent leur exactitude. Nous avons implanté ce mécanisme à l'intérieur de l'outil SableCC, un générateur de compilateurs. Le résultat est un outil capable de générer des analyseurs lexicaux et syntaxiques dans lesquelles sont enchâssées des actions de construction d'arbres syntaxiques et des classes utilitaires (incluant des visiteurs) à partir de simples spécifications grammaticales. ______________________________________________________________________________ MOTS-CLÉS DE L’AUTEUR : Arbre syntaxique concret, Arbre syntaxique abstrait, Générateur de compilateurs, Analyse syntaxique.
Identifer | oai:union.ndltd.org:LACETR/oai:collectionscanada.gc.ca:QMUQ.2015 |
Date | January 2006 |
Creators | Agbakpem, Komivi Kevin |
Source Sets | Library and Archives Canada ETDs Repository / Centre d'archives des thèses électroniques de Bibliothèque et Archives Canada |
Detected Language | French |
Type | Mémoire accepté, PeerReviewed |
Format | application/pdf |
Relation | http://www.archipel.uqam.ca/2015/ |
Page generated in 0.0021 seconds