Qu'est-ce que Arbre syntaxique abstrait (AST) ?

Représentation de la structure d'un programme sous forme d'arbre dont les nœuds sont les opérations et les instructions. Les informations sans signification, comme parenthèses et séparateurs, sont omises ; la priorité des opérateurs est exprimée par la forme de l'arbre.

Nom japonais: 抽象構文木(AST)

« Arbre syntaxique abstrait (AST) » apparaît dans 2 questions d'entraînement réparties sur 1 thèmes, dont Compilateurs.

Domaine: Compilateurs

S'entraîner : questions sur Arbre syntaxique abstrait (AST)

Quelle caractéristique de l'arbre syntaxique abstrait (AST) est correcte ?

  1. AIl conserve comme nœuds tous les éléments du code source, jusqu'aux parenthèses et séparateurs
  2. BIl omet les symboles sans incidence sur la sémantique et exprime la priorité des opérateurs par la forme de l'arbre
  3. CIl correspond un à un aux instructions du CPU et s'exécute tel quel
Afficher la réponse et l'explication

Réponse : B. Il omet les symboles sans incidence sur la sémantique et exprime la priorité des opérateurs par la forme de l'arbre

L'analyse syntaxique produit, conformément aux règles de grammaire, un arbre incluant parenthèses et séparateurs (arbre syntaxique concret), qui contient beaucoup d'informations inutiles pour la suite. L'arbre syntaxique abstrait ne garde comme nœuds que les opérations et instructions nécessaires à la sémantique du programme ; pour (a + b) * c, par exemple, le nœud d'addition placé sous le nœud de multiplication indique l'ordre de calcul sans parenthèses. La correspondance avec les instructions du CPU relève du code généré dans une phase ultérieure.

Quelle est la forme correcte de l'arbre syntaxique abstrait de l'expression 2 + 3 * 4 ?

  1. ALa racine est le nœud +, dont l'enfant droit est le nœud * représentant 3 * 4
  2. BLa racine est le nœud *, dont l'enfant gauche est le nœud + représentant 2 + 3
  3. CLes cinq nœuds 2, 3, 4, + et * sont tous enfants directs de la racine
Afficher la réponse et l'explication

Réponse : A. La racine est le nœud +, dont l'enfant droit est le nœud * représentant 3 * 4

La multiplication étant prioritaire sur l'addition, l'expression s'interprète comme 2 + (3 * 4). Dans l'arbre syntaxique abstrait, les opérations calculées en premier sont placées plus bas ; la racine est donc +, avec pour enfant gauche 2 et pour enfant droit le nœud * dont les enfants sont 3 et 4. En évaluant l'arbre de bas en haut, on calcule d'abord 3 * 4 = 12, puis 2 + 12 = 14. La racine * correspond à l'écriture (2 + 3) * 4, et placer tous les nœuds sous la racine ne permet pas d'exprimer l'ordre de calcul.

« Arbre syntaxique abstrait (AST) » dans les explications

Questions mentionnant « Arbre syntaxique abstrait (AST) » (2)

  1. Quelle caractéristique de l'arbre syntaxique abstrait (AST) est correcte ?
  2. Quelle est la forme correcte de l'arbre syntaxique abstrait de l'expression 2 + 3 * 4 ?

Termes associés

Analyse syntaxique Allocation de registres Analyse lexicale Bloc de base Compilation JIT Débordement (spill) Déroulage de boucle (loop unrolling) Élimination des sous-expressions communes Forme SSA Graphe de flot de contrôle

Retour au glossaire