Qu'est-ce qu'un arbre de syntaxe abstraite?
Un arbre de syntaxe abstraite (AST) est une structure syntaxique conçue pour représenter les fonctions présentes dans un programme. Il est basé sur le code source de la programmation. Généralement de conception hiérarchique, l’arbre de syntaxe abstraite part des fonctions de base pour ensuite afficher les fonctions et le code les plus impliqués au sein de chaque fonction de base. L'utilisation de cette arborescence facilite la visualisation du code par les programmeurs sans consulter le code source lui-même, qui est beaucoup plus long et peut révéler des failles ou des faiblesses dans le code. L'arbre est appelé abstrait, non pas parce qu'il est difficile à comprendre ou qu'il a une forme abstraite, mais parce qu'il n'inclut pas la syntaxe de codage telle que les marques de parenthèse et autres symboles qui apparaissent inévitablement dans le code.
Lorsqu'un programmeur construit un programme, il doit créer les fonctions à partir d'éléments tels que les instructions "if-then" et "or else". Lorsque vous examinez le code source, il peut être difficile de voir si chaque déclaration et chaque condition ont été pleinement remplies et si toutes les fonctions ont été créées correctement. Un arbre de syntaxe abstraite permet au programmeur de consulter rapidement la programmation pour voir chaque condition et son application à l'ensemble du programme.
L'arbre est fabriqué de manière hiérarchique. Au sommet se trouve l’une des déclarations principales et, à partir de cette déclaration, les branches s’affichent pour montrer ce qui satisfait les conditions. Cela continue, montrant d'autres fonctions et conditions pour l'ensemble du programme. Les variables de la programmation sont également souvent affichées. La plupart des langages de programmation ont la capacité de générer un arbre de syntaxe abstrait.
Abstrait signifie généralement mal formé, difficile à comprendre ou amorphe. Ce n'est pas le cas avec un arbre de syntaxe abstraite. Le mot "abstrait" est utilisé parce que l’arbre n’affiche pas la syntaxe et la programmation telles qu’elles sont; il supprime plutôt les symboles implicites qui ne sont pas importants pour l'affichage. Par exemple, les parenthèses sont souvent utilisées de manière très libérale dans la programmation, mais elles ne sont pas affichées dans l'arborescence. Cela est dû au fait que l'affichage de cette syntaxe prend beaucoup plus de place, rend plus difficile la consultation de l'arborescence et que le programmeur est informé de ces symboles dans le code source.
Si un programmeur souhaite voir ces symboles auxiliaires, un arbre syntaxique concret est souvent utilisé. Ces arbres ressemblent à la variété abstraite, mais ils vont plus en détail avec tous les symboles. Cet arbre est meilleur pour regarder les morceaux manquants de symboles ou de code, tandis que l'arbre abstrait est meilleur pour vérifier les fonctions et les variables du programme.