Syntaxe concrète


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 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 de syntaxe 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.

  • Portail de l’informatique Portail de l’informatique
Ce document provient de « Syntaxe abstraite ».

Wikimedia Foundation. 2010.

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

Regardez d'autres dictionnaires:

  • 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… …   Wikipédia en Français

  • Poésie concrète — La poésie concrète est une forme de poésie expérimentale qui ne fait appel ni à la syntaxe ni au rythme mais considère le poème comme un objet sensible indépendamment du sens. Sommaire 1 Historique 2 Notes et références 3 Annexes …   Wikipédia en Français

  • Perl6 — Perl 6 Apparu en Spécification : 2001 2009, mise en œuvre partielle par NQP Auteur Larry Wall …   Wikipédia en Français

  • Perl 6 — Apparu en Spécification : 2001 2011, mise en œuvre partielle par Rakudo Star Auteur …   Wikipédia en Français

  • Perl (langage) — Pour les articles homonymes, voir Perl. Perl Apparu en 1987 Auteur Larry …   Wikipédia en Français

  • Langage Perl — Perl (langage) Pour les articles homonymes, voir Perl. Apparu en 1987 …   Wikipédia en Français

  • Perl 5 — Perl (langage) Pour les articles homonymes, voir Perl. Apparu en 1987 …   Wikipédia en Français

  • Langage De Description De Format De Document — Un langage de description de format de document est un langage permettant de définir un jeu de règles et contraintes qui seront utilisées pour savoir si une instance de document est valide par rapport à ce même jeu de règles et contraintes.… …   Wikipédia en Français

  • Langage de description — de format de document Un langage de description de format de document est un langage permettant de définir un jeu de règles et contraintes qui seront utilisées pour savoir si une instance de document est valide par rapport à ce même jeu de règles …   Wikipédia en Français

  • Langage de description de format de document — Un langage de description de format de document est un langage permettant de définir un jeu de règles et contraintes qui seront utilisées pour savoir si une instance de document est valide par rapport à ce même jeu de règles et contraintes.… …   Wikipédia en Français