`` `
S -> ASB | ε
`` `
Επεξήγηση:
* s: Αυτό είναι το σύμβολο εκκίνησης της γραμματικής. Αντιπροσωπεύει μια συμβολοσειρά που ανήκει στη γλώσσα `aⁿbⁿ`.
* a: Αντιπροσωπεύει τον κυριολεκτικό χαρακτήρα «Α».
* b: Αντιπροσωπεύει τον κυριολεκτικό χαρακτήρα «Β».
* |: Αντιπροσωπεύει "ή". Υποδεικνύει ότι υπάρχουν πολλοί κανόνες παραγωγής για το σύμβολο στα αριστερά.
* ε: Αντιπροσωπεύει την κενή συμβολοσειρά.
Πώς λειτουργεί:
1. `s -> asb`: Αυτός ο κανόνας δημιουργεί ένα «Α», ακολουθούμενο από ένα «S» (το οποίο τελικά θα δημιουργήσει περισσότερα «Α και« Β), ακολουθούμενη από Α «Β». Κάθε φορά που εφαρμόζεται αυτός ο κανόνας, προσθέτει αποτελεσματικά ένα «Α» προς τα αριστερά και ένα «Β» στα δεξιά, διατηρώντας την ισορροπία που απαιτείται από τη γλώσσα.
2. `s -> ε ': Αυτός ο κανόνας παρέχει τη βασική περίπτωση για την επανάληψη. Επιτρέπει την τερματισμό της παραγωγής, παράγοντας την κενή συμβολοσειρά (όπου n =0).
Παραδείγματα παραγωγής:
* n =0:κενή συμβολοσειρά (ε)
`S -> ε '
* n =1:"ab"
`S -> asb '
`S -> aεμπ '
`S -> ab '
* n =2:"aabb"
`S -> asb '
`S -> aasbb '
`S -> aaebb`
`S -> aabb '
* n =3:"aaabbb"
`S -> asb '
`S -> aasbb '
`S -> aaasbbb '
`S -> aaaebbb`
`S -> aaabbb`
Γιατί αυτό το CFG παράγει μόνο aⁿbⁿ:
Ο μόνος τρόπος για να εξαχθεί μια συμβολοσειρά από το 's' είναι με την επανειλημμένη εφαρμογή του κανόνα `s -> asb` μηδέν ή περισσότερες φορές, ακολουθούμενη από την εφαρμογή του κανόνα` s -> ε` μία φορά. Κάθε εφαρμογή του «S -> ASB» προσθέτει ένα «Α» στα αριστερά και ένα «Β» προς τα δεξιά. Επομένως, η προκύπτουσα συμβολοσειρά θα έχει πάντα ίσο αριθμό «Α και« Β, με όλα τα «Α που προηγούνται όλων των« Β. Αυτό περιγράφει με ακρίβεια τη γλώσσα `aⁿbⁿ`.
Βασικές έννοιες:
* Γραμματική χωρίς περιβάλλον (CFG): Μια επίσημη γραμματική όπου οι κανόνες παραγωγής έχουν ένα ενιαίο μη τερματικό σύμβολο στην αριστερή πλευρά και οποιοδήποτε συνδυασμό τερματικών και μη τερματικών συμβόλων στη δεξιά πλευρά. Η εφαρμογή ενός κανόνα παραγωγής δεν εξαρτάται από το πλαίσιο στο οποίο εμφανίζεται το μη τερματικό σύμβολο.
* Τερματικά σύμβολα: Σύμβολα που εμφανίζονται στην τελική συμβολοσειρά (π.χ., 'a', 'b').
* Μη τερματικά σύμβολα: Σύμβολα που αντιπροσωπεύουν γραμματικές κατηγορίες ή ενδιάμεσα βήματα στην παραγωγή (π.χ. 's').
* Σύμβολο εκκίνησης: Το μη τερματικό σύμβολο από το οποίο προέρχονται όλες οι χορδές στη γλώσσα (π.χ. 's').
* Κανόνες παραγωγής: Κανόνες που καθορίζουν τον τρόπο με τον οποίο τα μη τερματικά σύμβολα μπορούν να αντικατασταθούν από άλλα σύμβολα (π.χ., S -> ASB`).
Αυτό το CFG είναι ένα κλασικό παράδειγμα που χρησιμοποιείται συχνά για να απεικονίσει τη δύναμη των CFG και την ικανότητά τους να εκφράζουν γλώσσες που δεν είναι τακτικές. Η γλώσσα `aⁿbⁿ` είναι ένα τυπικό παράδειγμα μιας γλώσσας χωρίς περιβάλλον που δεν είναι κανονική γλώσσα.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα