Ας υποθέσουμε ότι θέλουμε να ορίσουμε το τι σημαίνει σωστά δομημένη
αριθμητική έκφραση. Για να κάνουμε τα πράγματα πιο απλά (χωρίς να
χαθεί η ουσία) ας περιοριστούμε σε αριθμητικές εκφράσεις όπου
οι μόνες πράξεις είναι η πρόσθεση (+) και ο πολλαπλασιασμός (*),
και όπου ισχύουν οι συνηθισμένοι κανόνες για τις παρενθέσεις.
Ας υποθέσουμε επίσης ότι οι βασικές ποσότητες που φτιάχνουν μια έκφραση
συμβολίζονται όλες με το γράμμα .
Για παράδειγμα η έκφραση
είναι μια σωστή έκφραση
ενώ η
δεν είναι.
Έχουμε δηλαδή ένα πολύ περιορισμένο αλφάβητο
Ένας γρήγορος και καθαρός τρόπος να τις ορίσουμε είναι να σκεφτούμε το πώς τις φτιάχνουμε: κολλάμε μαζί, με συγκεκριμένους κανόνες, μικρότερες εκφράσεις και φτιάχνουμε μεγαλύτερες. Δίνουμε έτσι τον εξής ορισμό.
Ορισμοί σαν τον παραπάνω (αλλά και αρκετά πιο περίπλοκοι) κωδικοποιούνται στις λεγόμενες context free γραμματικές. Πριν δώσουμε τον ακριβή ορισμό για αυτές ας πούμε ότι η context free γραμματική που αντιστοιχεί στον παραπάνω ορσιμό είναι η:
Με το σύμβολο
Με την παρακάτω ακολουθία μετασχηματισμών προκύπτει π.χ. η λέξη
![]() |
![]() |
![]() |
(κανόνας παραγωγής 3) |
![]() |
![]() |
(κανόνας παραγωγής 4) | |
![]() |
![]() |
(κανόνας παραγωγής 2) | |
![]() |
![]() |
(κανόνας παραγωγής 3) | |
![]() |
![]() |
(κανόνας παραγωγής 1, τέσσερεις φορές) |
Εύκολα βλέπει κανείς ότι με όποιο τρόπο και να χρησιμοποιήσουμε
τους κανόνες παραγωγής δε μπορούμε να πάρουμε από την τη λέξη
.
Mihalis Kolountzakis 2015-11-28