Ορισμός 9.2
Μια context free γραμματική πάνω από ένα αλφάβητο
(τα τερματικά σύμβολα) είναι μια πεπερασμένη συλλογή από
-
μη τερματικά σύμβολα,
που συνήθως τα συμβολίζουμε με κεφαλαία λατινικά γράμματα,
και που περιλαμβάνουν το διακεριμένο σύμβολο (αρχικό
μη τερματικό σύμβολο)
-
κανόνες παραγωγής , όπου είναι ένα μη τερματικό σύμβολο
και είναι μια λέξη από γράμματα του και μη τερματικά σύμβολα
(η μπορεί να είναι και η κενή λέξη).
Αν είναι μια Context Free Grammar(CFG), Context Free Γραμματική, και
. είναι δύο λέξεις από τερματικά ή μη τερματικά σύμβολα,
τότε γράφουμε
αν με χρήση ενός κανόνα παραγωγής
μπορεί να προκύψει
η λέξη από τη λέξη . Αυτό σημαίνει ότι αντικαθιστούμε μια εμφάνιση
του μη τερματικού συμβόλου στη λέξη με τη λέξη (που απαρτίζεται
από τερματικά και μη τερματικά σύμβολα) και με την αντικατάσταση αυτή προκύπτει
η λέξη .
Για παράδειγμα, αν είναι η γραμματική που ορίσαμε παραπάνω τότε
ισχύει
μια και από την αριστερή λέξη προκύπτει η δεξιά αν χρησιμοποιηθεί
ο κανόνας 2.
Ορίζουμε επίσης
να σημαίνει ότι υπάρχει πεπερασμένη ακολουθία λέξεων
ώστε
ότι δηλ. η λέξη μπορεί να προκύψει από τη λέξη με επανειλημμένη
χρήση των κανόνων παραγωγής της .
Στην παραπάνω γραμματική για τις εκφράσεις ισχύει, για παράδειγμα,
αφού μπορούμε από τη λέξη να πάμε στη λέξη εφαρμόζοντας
πρώτα τον κανόνα 3 και μετά τον κανόνα 2.
Έχοντας στα χέρια μας τον συμβολισμό αυτό μπορούμε εύκολα
να ορίσουμε πλέον ποια είναι η γλώσσα που αντιστοιχεί σε
μια λέξη (από τερματικά ή μη σύμβολα).
Απαρτίζεται δηλ. η από εκείνες τις λέξεις χωρίς μη τερματικά
σύμβολα που μπορούν να παραχθούν σε πεπερασμένο πλήθος βημάτων από τη
λέξη με τους κανόνες παραγωγής της .
Τέλος ορίζουμε την γλώσσα της .
Ορισμός 9.4
Αν είναι μια CFG η γλώσσα ορίζεται να είναι η γλώσσα .
Μια γλώσσα λέγεται Context Free Language (CFL), Context Free Γλώσσα, αν είναι η γλώσσα
κάποιας context free γραμματικής.
Είναι δηλ. η γλώσσα της όλες οι λέξεις του που παράγονται
από το αρχικό μη τερματικό σύμβολο .
Θα χρησιμοποιούμε συνήθως τη συντομογραφία
για να υποδηλώσουμε μια ομάδα από κανόνες παραγωγής
με το ίδιο αριστερό μέλος.
Άσκηση 9.1
Ποια είναι η γλώσσα της γραμματικής
με κανόνες
;
Άσκηση 9.2
Δώστε μια CFG για τη γλώσσα
.
Άσκηση 9.3
Ανατρέξτε πίσω στον ορισμό του τι είναι κανονική έκφραση.
Αν σταθεροποιήσουμε το αλφάβητο σε, ας πούμε,
,
δώστε μια CFG για τη γλώσσα των κανονικών εκφράσεων
πάνω από το .
Mihalis Kolountzakis
2015-11-28