"Αν μια γραμματική παράγει τουλάχιστον 2 διακριτά αναλυτικό δέντρο ή παραγώγους, τότε η γραμματική είναι διφορούμενη." Ένας άλλος κανόνας: όλα τα CFG (χωρίς άχρηστα σύμβολα) με αναδρομικότητα αριστερά και δεξιά αναδρομικότητα για το ίδιο μη τερματικό είναι επίσης διφορούμενα.
Πώς καταλαβαίνετε εάν μια γραμματική είναι διφορούμενη;
Μια γραμματική λέγεται ότι είναι ασαφής εάν υπάρχουν υπάρχουν περισσότερες από μία παράγωγες στο αριστερό μέρος ή περισσότερες από μία δεξιότερες παράγωγες ή περισσότερα από ένα δέντρα ανάλυσης για τη δεδομένη συμβολοσειρά εισόδου. Αν η γραμματική δεν είναι διφορούμενη, τότε λέγεται μονοσήμαντη. Εάν η γραμματική έχει ασάφεια, τότε δεν είναι καλή για την κατασκευή μεταγλωττιστή.
Τι είναι μια διφορούμενη γραμματική δώστε ένα παράδειγμα;
Στην επιστήμη των υπολογιστών, μια διφορούμενη γραμματική είναι μια γραμματική χωρίς συμφραζόμενα για την οποία υπάρχει μια συμβολοσειρά που μπορεί να έχει περισσότερες από μία αριστερές παράγωγες ή αναλύσεις, ενώ μια μονοσήμαντη γραμματική είναι μια γραμματική χωρίς συμφραζόμενα για την οποία κάθε έγκυρη συμβολοσειρά έχει μια μοναδική αριστερότερη παράγωγο ή δέντρο ανάλυσης.
Πώς αποδεικνύεις ότι μια γραμματική χωρίς συμφραζόμενα είναι διφορούμενη;
3 Απαντήσεις
- Όλα τα CFG χωρίς άχρηστα σύμβολα και με αριστερή και δεξιά αναδρομή για το ίδιο σύμβολο, είναι διφορούμενα. Γενικά: …
- Για να διερευνήσετε την ασάφεια, πρέπει να βρείτε 2 αριστερές παραγώγους για την ίδια συμβολοσειρά (ή 2 δεξιότερες παραγώγους ή 2 δέντρα παραγωγής).
Πώς λύνετε τη διφορούμενη γραμματική;
Μέθοδοι για την κατάργηση της αμφισημίας-
- Διορθώνοντας τη γραμματική.
- Με την προσθήκη κανόνων ομαδοποίησης.
- Χρησιμοποιώντας τη σημασιολογία και επιλέγοντας την ανάλυση που έχει περισσότερο νόημα.
- Με την προσθήκη των κανόνων προτεραιότητας ή άλλων κανόνων ανάλυσης ευαίσθητου περιβάλλοντος.