Passer au contenu principal

Analyseur syntaxique

UNE analyseur o parser (vient de l'anglais: parse - examine une chaîne ou un texte dans des composants syntaxiques logiques) est un programme qui fait normalement partie d'un compilateur. Le compilateur s'assure que le code est correctement traduit dans un langage exécutable. La tâche de l'analyseur est, dans ce cas, la décomposition et la transformation des entrées dans un format utilisable pour un traitement ultérieur. Une chaîne d'instructions est analysée dans un langage de programmation puis décomposée en ses composants individuels.

Comment ça marche

Pour revoir le texte, les analyseurs utilisent souvent un lexer séparé (appelé lexer), qui divise les données d'entrée en tabulations (symboles d'entrée sous forme de mots). Les lexers sont généralement des machines finies, suivant la grammaire régulière et promettant ainsi une ventilation appropriée. Les jetons ainsi obtenus servent de caractères d'entrée pour l'analyseur.

L'analyseur courant gère la grammaire des données d'entrée, effectue une analyse syntaxique de celles-ci et en règle générale crée un arbre de syntaxe (arbre d'analyse). Cela peut être utilisé pour le post-traitement des données, par exemple, la génération de code par un compilateur ou exécuté par un interpréteur (traducteur). Ainsi, l'analyseur est le logiciel qui vérifie, traite et transmet les instructions du code source.

Analyseur syntaxique-en-01.png

Exemple d'arbre d'analyse

Types d'analyseurs

Il existe simplement deux méthodes d'analyse différentes, l'analyse descendante et l'analyse ascendante. Celles-ci diffèrent généralement dans l'ordre dans lequel les éléments de l'arborescence syntaxique sont créés.

  • De haut en bas: Dans la méthode descendante, l'analyseur fonctionne sur une méthode axé sur les objectifs, ce qui signifie qu'il recherche à partir du symbole de début de la syntaxe et recherche une dérivation syntaxique appropriée. De cette manière, l'arbre d'analyse se développe de haut en bas dans le sens d'une décomposition de plus en plus détaillée.
  • De bas en haut: L'analyseur ascendant commence par le symbole de la chaîne d'entrée et tente de déterminer des relations syntaxiques croissantes. Ceci est fait jusqu'à ce que le symbole de début de la grammaire soit atteint.

applications

Un analyseur syntaxique est couramment utilisé pour convertir du texte en une nouvelle structure, par exemple un arbre de syntaxe, qui exprime la disposition hiérarchique des éléments. Dans les applications suivantes, l'utilisation d'un analyseur est généralement essentielle:

  • La lecture d'un langage de programmation est effectuée par un analyseur. Il fournit une structure de données au compilateur, avec laquelle le code machine ou le bytecode peut être généré.
  • Le code HTML est initialement juste une chaîne de caractères pour un PC qui doit être analysée par l'analyseur contenu dans le navigateur Web. Fournit une description de la page Web sous la forme d'une structure de données qui peut être projetée par un moteur de mise en page à l'écran.
  • Des analyseurs XML spéciaux sont chargés d'analyser les documents XML et de préparer les informations qu'ils contiennent pour une utilisation ultérieure.
  • Les analyseurs d'URI décomposent les schémas complexes tels que les URL dans leur structure hiérarchique.
  • Les moteurs de recherche comme Google extraient (analysent) le texte qui leur est pertinent à partir de pages Web téléchargées avec des robots d'exploration. Ils sont traités et les données analysées peuvent être utilisées pour la navigation.

conclusion

Il y a plus de classifications de types d'analyseurs en même temps à partir de la subdivision expliquée dans l'analyse descendante et ascendante. Sur la base de la grammaire analysée, de meilleures analyses peuvent être effectuées sur les pages Web avec l'analyseur approprié. Les moteurs de recherche essaieront toujours de tirer pleinement parti de cette procédure d'analyse Web efficace pour fournir à l'utilisateur des résultats de recherche rapides et informatifs.

Liens web