Définition - Que signifie Parser?
Un analyseur est un compilateur ou un composant interpréteur qui divise les données en éléments plus petits pour une traduction facile dans une autre langue. Un analyseur prend les entrées sous la forme d'une séquence de jetons, de commandes interactives ou d'instructions de programme et les décompose en parties qui peuvent être utilisées par d'autres composants dans la programmation.
Un analyseur vérifie généralement toutes les données fournies pour s'assurer qu'elles sont suffisantes pour construire une structure de données sous la forme d'un arbre d'analyse ou d'un arbre de syntaxe abstraite.
Definir Tech explique Parser
Pour que le code écrit sous une forme lisible par l'homme soit compris par une machine, il doit être converti en langage machine. Cette tâche est généralement effectuée par un traducteur (interprète ou compilateur). L'analyseur est couramment utilisé comme composant du traducteur qui organise le texte linéaire dans une structure qui peut être facilement manipulée (arbre d'analyse). Pour ce faire, il suit un ensemble de règles définies appelées «grammaire».
Le processus global d'analyse comporte trois étapes:
-
Analyse lexicale: Un analyseur lexical est utilisé pour produire des jetons à partir d'un flux de caractères de chaîne d'entrée, qui sont divisés en petits composants pour former des expressions significatives. Un jeton est la plus petite unité dans un langage de programmation qui possède une certaine signification (comme +, -, *, «fonction» ou «nouveau» en JavaScript).
-
Analyse syntaxique: Vérifie si les jetons générés forment une expression significative. Cela utilise une grammaire sans contexte qui définit des procédures algorithmiques pour les composants. Ceux-ci fonctionnent pour former une expression et définir l'ordre particulier dans lequel les jetons doivent être placés.
-
Analyse sémantique: La dernière étape d'analyse au cours de laquelle la signification et les implications de l'expression validée sont déterminées et les mesures nécessaires sont prises.
Le but principal d'un analyseur est de déterminer si les données d'entrée peuvent être dérivées du symbole de début de la grammaire. Si oui, de quelle manière ces données d'entrée peuvent-elles être dérivées? Ceci est obtenu comme suit:
-
Analyse descendante: Implique la recherche dans un arbre d'analyse pour trouver les dérivations les plus à gauche d'un flux d'entrée à l'aide d'une expansion descendante. L'analyse commence par le symbole de début qui est transformé en symbole d'entrée jusqu'à ce que tous les symboles soient traduits et qu'un arbre d'analyse pour une chaîne d'entrée soit construit. Les exemples incluent les analyseurs LL et les analyseurs de descendance récursive. L'analyse descendante est également appelée analyse prédictive ou analyse récursive.
-
Analyse ascendante: Implique la réécriture de l'entrée sur le symbole de départ. Il agit en sens inverse en traçant la dérivation la plus à droite d'une chaîne jusqu'à ce que l'arbre d'analyse soit construit jusqu'au symbole de début. Ce type d'analyse est également connu sous le nom d'analyse de réduction de décalage. Un exemple est un analyseur LR.
Les analyseurs sont largement utilisés dans les technologies suivantes:
-
Java et autres langages de programmation.
-
HTML et XML.
-
Langage de données interactif et langage de définition d'objet.
-
Langages de base de données, tels que SQL.
-
Langages de modélisation, tels que le langage de modélisation de réalité virtuelle.
-
Langages de script.
-
Protocoles, tels que les appels de fonction à distance HTTP et Internet.