Analyse grammaticale
L'analyse grammaticale, l'analyse lexicale et l'analyse sémantique m'ont emmené directement sur la plage. J'étais déjà ignorant. Cet article n'est pas recommandé à lire. Je viens de prendre un cadre approximatif du livre.
-
Présentation
- En tant que partie centrale du processus de compilation, l'analyse grammaticale est analysée par un programme d'analyse grammaticale selon certaines règles grammaticales,Identifier les différents composants grammaticaux et effectuer des vérifications grammaticales。
-
Analyseur
- Effet
- Entrée : flux de jetons / séquence de jetons
- Sortie : arbre d'analyse
- Fonction : combiner les marques en composants grammaticaux, vérifier la grammaire
- Effet
-
Méthode d'analyse
-
Approche descendante
-
Analyse de descente récursive
- À partir du début de la grammaire, le processus d'extraction de la chaîne d'entrée à analyser par la vue, de haut en bas pour construire un arbre d'analyse pour la chaîne d'entrée
- Chaque grammaireSymbole non terminalCorrespondant à unProcessus récursif, Vous pouvez implémenter cette méthode d'analyse de descente récursive avec retour arrière.
- Chaque processus est un processus booléen. Une fois qu'il trouve qu'une de ses productions correspond à la chaîne d'entrée, il utilise cette production pour développer l'arborescence d'analyse et renvoie true, sinon l'arborescence d'analyse reste inchangée et renvoie false.
-
Analyse prédictive des appels récursifs
- Caractéristiques : Méthode d'analyse de descente définie et récursive sans retour en arrière
- Impliqué dans le diagramme de conversion , ne pas développer
-
Analyse prédictive non récursive
- Utilisation d'une table d'analyse combinée et d'un contrôle de pile pour réaliser une analyse descendante de la chaîne de symboles d'entrée.
- Le modèle
- Tampon d'entrée : stocker la chaîne de symboles pour l'analyse
- Pile de symboles: stocke les symboles de grammaire, $ stocke le bas de la pile, comme une marque
- Table d'analyse : recherchez la production appelée dans la table d'analyse
- Flux de sortie : pour les séquences de production générées en continu
-
-
-
Approche ascendante
- Méthode d'analyse :
- Lancer l'analyse à partir de la chaîne de symboles d'entrée
- Trouver la chaîne réductible du modèle de phrase actuel
- Utilisez des règles pour les réduire en symboles non terminaux correspondants
- Méthode d'analyse :
-
Analyse LR
- Présentation
- L-signifie balayage de gauche à droite
- R-Représente la chaîne de symboles d'entrée pour construire un processus inverse où la jambe la plus à droite arrive
- K-indique le nombre de symboles d'entrée qui prennent une décision d'analyse et regardent vers l'avant
- Effet
- Pas de retour en arrière
- Capacité d'analyser le contexte non pertinent
- Identifier les erreurs dans le temps
- Le modèle
- Présentation
-
Outils logiciels
- YACC(Encore un autre compilateur-compilateur)
- Processus