Différence entre l'analyse descendante et ascendante

Table des matières:

Différence entre l'analyse descendante et ascendante
Différence entre l'analyse descendante et ascendante

Vidéo: Différence entre l'analyse descendante et ascendante

Vidéo: Différence entre l'analyse descendante et ascendante
Vidéo: 06 - Analyse descendante : L'analyse LL (1) 2024, Décembre
Anonim

La principale différence entre l'analyse descendante et ascendante est que l'analyse descendante effectue l'analyse du symbole de départ à la chaîne d'entrée tandis que l'analyse descendante effectue l'analyse de la chaîne d'entrée au symbole de départ. De plus, une autre différence importante entre l'analyse descendante et ascendante est que l'analyse descendante utilise la dérivation la plus à gauche et l'analyse descendante utilise la dérivation la plus à droite.

Les langages de haut niveau aident à écrire des programmes informatiques. Ils sont plus faciles à comprendre par le programmeur mais pas par l'ordinateur. Par conséquent, le programme de haut niveau est converti en code machine. La tâche du compilateur est de convertir le code source lisible par l'homme en code machine lisible par machine. Un programme passe par plusieurs étapes pour se convertir en code machine. L'ensemble de ce processus est appelé système de traitement du langage. L'un d'eux est la compilation. L'analyseur de syntaxe ou l'analyseur se trouve dans le compilateur et il effectue la tâche d'analyse.

Qu'est-ce que l'analyse descendante ?

Chaque langage de programmation a un ensemble de règles pour représenter le langage. L'analyseur de syntaxe ou l'analyse prend la chaîne d'entrée et vérifie si elle est conforme aux productions grammaticales. En d'autres termes, la grammaire doit produire cette chaîne à l'aide d'un arbre d'analyse.

Dans l'analyse descendante, l'analyse se produit à partir du symbole de départ et atteindra la chaîne d'entrée donnée. Considérez les règles de production de grammaire suivantes. La chaîne d'entrée (w) est cad.

S -> cAd

A -> ab /a

L'arborescence d'analyse après avoir effectué l'analyse descendante est la suivante.

Différence entre l'analyse descendante et ascendante
Différence entre l'analyse descendante et ascendante
Différence entre l'analyse descendante et ascendante
Différence entre l'analyse descendante et ascendante

Figure 01: Arbre d'analyse 1 avec analyse descendante

S produit c A d et A produit a b. La chaîne est cabd. Ce n'est pas la chaîne requise. Il faut donc faire marche arrière, c'est-à-dire utiliser les autres alternatives.

De même, S produit c A d. L'application de l'autre option pour A donnera a. Maintenant, il donne la chaîne requise. Par conséquent, l'analyseur accepte cette chaîne d'entrée. L'arborescence d'analyse après avoir effectué l'analyse descendante est la suivante.

Différence entre l'analyse descendante et ascendante_Fig 2
Différence entre l'analyse descendante et ascendante_Fig 2
Différence entre l'analyse descendante et ascendante_Fig 2
Différence entre l'analyse descendante et ascendante_Fig 2

Figure 02: Arbre d'analyse 2 avec analyse descendante

Lorsque la chaîne d'entrée (w) est abbcde

Considérez les règles de production de grammaire suivantes.

S -> aABe

A -> Abc/b

B -> d

Dans l'analyse descendante, S -> aABe (remplaçant A -> Abc)

S -> aAbcBe (remplaçant A -> b)

S -> abbcBe (remplaçant B ->d)

S -> abbcde

La substitution commence par la variable la plus à gauche en premier, puis jusqu'à la position suivante à droite et ainsi de suite. Par conséquent, il suit une méthode de dérivation la plus à gauche. De plus, il est important de décider quelle règle de production choisir lorsqu'il y a une variable.

Qu'est-ce que l'analyse ascendante ?

Dans l'analyse ascendante se produit dans l'autre sens. L'analyse se produit de la chaîne d'entrée au symbole de départ. Considérez les règles de production de grammaire suivantes et laissez la chaîne d'entrée être w ɛ cad

S -> cAd

A -> ab /a

L'arborescence d'analyse après avoir effectué l'analyse ascendante est la suivante.

Différence clé entre l'analyse descendante et ascendante_Fig 03
Différence clé entre l'analyse descendante et ascendante_Fig 03
Différence clé entre l'analyse descendante et ascendante_Fig 03
Différence clé entre l'analyse descendante et ascendante_Fig 03

Figure 03: Arbre d'analyse avec analyse ascendante

La chaîne donnée est cad. Le a est généré par A. Le c, A et d se combinent pour obtenir le symbole de départ S.

Lorsque la chaîne d'entrée (w) est abbcde

Considérez les règles de production de grammaire suivantes.

S -> aABe

A -> Abc/b

B -> d

Dans l'analyse ascendante, S -> aABe (remplaçant B ->d)

S -> aAde (remplaçant A -> Abc)

S -> aAbcde (remplaçant A -> b)

S -> abbcde

La substitution commence par la variable la plus à droite en premier, puis passe à la position suivante à gauche et ainsi de suite. Par conséquent, il suit une méthode de dérivation du mot gauche.

Quelle est la différence entre l'analyse descendante et ascendante ?

L'analyse descendante est une stratégie d'analyse qui regarde d'abord le niveau le plus élevé de l'arbre d'analyse et descend l'arbre d'analyse en utilisant les règles d'une grammaire formelle. L'analyse ascendante est une stratégie d'analyse qui regarde d'abord le niveau le plus bas de l'arbre d'analyse et remonte l'arbre d'analyse en utilisant les règles d'une grammaire formelle. L'analyse se produit du symbole de départ à la chaîne d'entrée, en analyse descendante. D'autre part, l'analyse se produit de la chaîne d'entrée au symbole de départ, en analyse ascendante.

De plus, la décision principale dans l'analyse descendante est de sélectionner la règle de production à utiliser pour construire la chaîne, tandis que la décision principale dans l'analyse descendante consiste à sélectionner quand utiliser une règle de production pour réduire la chaîne à obtenir le symbole de départ. De plus, l'analyse descendante utilise la dérivation la plus à gauche et l'analyse descendante utilise la dérivation la plus à droite.

Différence entre l'analyse descendante et ascendante sous forme tabulaire
Différence entre l'analyse descendante et ascendante sous forme tabulaire
Différence entre l'analyse descendante et ascendante sous forme tabulaire
Différence entre l'analyse descendante et ascendante sous forme tabulaire

Résumé - Analyse descendante vs ascendante

La différence entre l'analyse descendante et ascendante est que l'analyse descendante effectue l'analyse du symbole de départ à la chaîne d'entrée tandis que l'analyse descendante effectue l'analyse de la chaîne d'entrée au symbole de départ.

Conseillé: