Τεχνικές Συντακτικής Ανάλυσης


Για να ελέγξουμε αν μια συμβολοσειρά είναι πρόταση αποδεκτή μιας δοθείσης γραμματικής χρησιμοποιούμε τις τεχνικές της ανίχνευσης. Τέτοιες τεχνικές είναι η  operator Precedence και η Recursive Descent (Αναδρομική Κατάβαση). Επειδή της περισσότερες φορές η γραμματική είναι αναδρομική ο δεύτερος τρόπος είναι πιο διαδεδομένος και δημοφιλής.
Παραλλαγή της αναδρομικής κατάβασης είναι η τεχνική LL και με συνδυασμό εργαλείων την κάνουν πιο ευκολόχρηστη. Όσο για την δημιουργία των δέντρων ανίχνευσης μπορεί να γίνει είτε με Bottom up είτε με Top down ανίχνευση. Η LL είναι μια Top down.

Προβλήματα στην Top down ανίχνευση

Τα προβλήματα που συναντάμε στην Top down ανίχνευση μιας γραμματικής και πρέπει να ξεπεράσουμε για να είναι κατάλληλη για Αναδρομική Κατάβαση, είναι τρία.
    1. Να μην έχει αριστερές αναδρομές άμεση ή έμμεση στους κανόνες. 
    2. Να μην έχει κοινό αριστερό πρόθεμα στους κανόνες. 
    3. Από τα ν εναλλακτικά μέρη ενός κανόνα τα ν-1 θα πρέπει να ξεκινάνε με τερματικά.

Το σύμβολο ε δεν θεωρείται τερματικό.
Η σειρά αντιμετώπισης των προβλημάτων αυτών έχει ως εξής:
Απαλοιφή αριστερών αναδρομών έμμεσες με αντικατάσταση, μετά  Απαλοιφή αριστερών αναδρομών άμεσες, μετά κοινό πρόθεμα και τέλος κανόνας του ν-1 με αντικατάσταση. 
Δίνουμε λοιπόν τους σχετικούς τύπους που θα μας βοηθήσουν σε αυτό 

Αριστερή αναδρομή 

Αν    ΑàΑa|b     τότε
ΑàbC
CàaC

Μια γενική μορφή είναι

Αν   AàAa1 |Aa2 |…|Aan |b1 |b2|…|bn    τότε
Aà b1 C|b2 C|…|bnC
Cà a1 C|a2 C|…|anC|ε

Κοινό πρόθεμα 

Αν   Aàa Α1 |a Α2 |…|a Αn |b1 |b2|…|bn    τότε
ΑàaC|b1 |b2|…|bn
Cà   Α1 | Α2 |…| Αn