Un arbre syntaxique abstrait, ou AST, est une représentation arborescente du code source d’un programme informatique qui véhicule la structure du code source. Chaque nœud de l’arbre représente une construction apparaissant dans le code source.
Lors de la conversion en son AST, seuls les détails structurels et liés au contenu du code source sont préservés, et tout détail supplémentaire est écarté. Les informations qui sont préservées, et qui sont vitales pour l’objectif de l’AST, sont :
- Types de variables, et emplacement de chaque déclaration de variable
- Ordre et définition des instructions exécutables
- Composantes gauche et droite des opérations binaires
- Identifiants et leurs valeurs assignées
À quoi servent les AST ?
Les AST sont utilisés pour représenter la structure du code source d’un programme pour que le compilateur puisse l’utiliser. Un AST est généralement le résultat de la phase d’analyse syntaxique d’un compilateur. Il sert souvent de représentation intermédiaire du programme à travers plusieurs étapes dont le compilateur a besoin, et a un fort impact sur la sortie finale du compilateur.
Les AST sont également utilisés pour des cas d’usage comme l’analyse statique du code. Les outils automatisés peuvent traverser l’AST d’un programme pour trouver des erreurs de syntaxe et de mauvais motifs dans le code sans l’exécuter réellement.