Syntaxe abstraite


Syntaxe abstraite

Dans la définition formelle des langages de programmation, la syntaxe abstraite s'oppose à la syntaxe concrète. Tandis que cette dernière représente les suites de caractères que l'utilisateur doit taper, la syntaxe abstraite tend à donner une structure aux données entrées, suggérant au passage la façon de les stocker en mémoire.

Par exemple, considérant une expression arithmétique dont la syntaxe concrète est 3*x+5, sa syntaxe abstraite pourra être un arbre dont la racine est un nœud +, de branche gauche un nœud * (ayant comme branche les feuilles 3 et x), de branche droite une feuille 5.

La syntaxe abstraite des langages de programmation, et son lien avec la syntaxe concrète, est le plus souvent donné par une grammaire hors-contexte en forme de Backus-Naur.

Il est remarquable que la famille de langages Lisp fait converger la syntaxe abstraite et la syntaxe concrète de façon à les rendre indiscernables pour le programmeur. Les langages Lisp se définissent en effet par l'utilisation des s-expressions pour la représentation littérale (syntaxique) du code source. Or en combinant des s-expressions, on obtient la représentation littérale d'un arbre de syntaxe, dont la traduction en arbre syntaxique abstrait est immédiate. Cette convergence permet d'ajouter à ces langages les macros, c’est-à-dire des opérateurs effectuant des transformations de source à source, ce qui permet de créer de nouveaux opérateurs sans altérer la définition du langage ni modifier le compilateur.

Par exemple :

3 * x + 5

est exprimé en Lisp :

 (+ 5 (* x 3))

qui correspond directement à l'arbre de syntaxe de racine +, feuille gauche 5, nœud droit * (feuilles x et 3). On observe qu'il n'y a plus besoin de connaître les règles de précédence des opérateurs arithmétiques infixes.

Un compositeur est une syntaxe concrète pour exprimer une valeur non primitive et spécifique à son type. Beaucoup de langages proposent des compositeurs pour les conteneurs (tableaux, tables associatives...). Plus rares sont les langages qui proposent une syntaxe concrète pour d'autres type d'objets, évitant ainsi l'utilisation explicite de constructeurs. Une forme spéciale de compositeur est l'interpolation de chaîne.


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Syntaxe abstraite de Wikipédia en français (auteurs)

Regardez d'autres dictionnaires:

  • Arbre de syntaxe abstraite — Arbre syntaxique abstrait Pour les articles homonymes, voir AST. En informatique, un arbre syntaxique abstrait (abstact syntax tree ou AST en anglais) est un arbre avec des labels dont les nœuds internes sont marqués par des opérateurs et dont… …   Wikipédia en Français

  • Syntaxe concrète — Syntaxe abstraite Dans la définition formelle des langages de programmation, la syntaxe abstraite s oppose à la syntaxe concrète. Tandis que cette dernière représente les suites de caractères que l utilisateur doit taper, la syntaxe abstraite… …   Wikipédia en Français

  • Syntaxe du pronom personnel — en français En grammaire française, le pronom personnel, comme tout pronom, peut virtuellement remplir toutes les fonctions du nom, c est à dire, apostrophe et satellite (d un verbe, d un adjectif, d un nom ou d un autre pronom). Pour tout ce qui …   Wikipédia en Français

  • Syntaxe du pronom personnel en français — En grammaire française, le pronom personnel, comme tout pronom, peut presque remplir toutes les fonctions du nom, c est à dire, apostrophe et satellite (d un verbe, d un adjectif, d un nom ou d un autre pronom). Pour tout ce qui concerne la… …   Wikipédia en Français

  • Arbre de syntaxe abstrait — Arbre syntaxique abstrait Pour les articles homonymes, voir AST. En informatique, un arbre syntaxique abstrait (abstact syntax tree ou AST en anglais) est un arbre avec des labels dont les nœuds internes sont marqués par des opérateurs et dont… …   Wikipédia en Français

  • Interpretation abstraite — Interprétation abstraite L interprétation abstraite est une théorie d approximation de la sémantique de programmes informatiques basée sur les fonctions monotones pour ensembles ordonnés, en particulier les treillis (en anglais : lattice).… …   Wikipédia en Français

  • Interprétation Abstraite — L interprétation abstraite est une théorie d approximation de la sémantique de programmes informatiques basée sur les fonctions monotones pour ensembles ordonnés, en particulier les treillis (en anglais : lattice). Elle peut être définie… …   Wikipédia en Français

  • Interprétation abstraite — L interprétation abstraite est une théorie d approximation de la sémantique de programmes informatiques fondée sur les fonctions monotones pour ensembles ordonnés, en particulier les treillis (en anglais : lattice). Elle peut être définie… …   Wikipédia en Français

  • Famille abstraite de langages — En informatique théorique, et en particulier en théorie des langages formels, le terme famille abstraite de langages réfère à une notion qui généralise des caractéristiques communes aux langage rationnels, aux langages algébriques, aux langages… …   Wikipédia en Français

  • Macro-Définition — Pour les articles homonymes, voir Macro. En programmation informatique, une macro définition ou simplement macro est l association d un texte de remplacement à un identificateur, tel que l identificateur est remplacé par le texte dans tout usage… …   Wikipédia en Français