Τυπική γλώσσα
Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια
Στα Μαθηματικά, στην Λογική, και στην Επιστήμη Υπολογιστών, μια τυπική γλώσσα (formal language) είναι ένα σύνολο λέξεων (ή γενικότερα στοιχειοσειρών) πεπερασμένου μήκους, που οι χαρακτήρες τους προέρχονται από κάποιο πεπερασμένο σύνολο στοιχείων, (που το λέμε αλφάβητο), και η σχετική επιστημονική θεωρία ονομάζεται θεωρία τυπικών γλωσσών. Ας σημειωθεί ότι μπορούμε να μιλάμε για τυπική γλώσσα από πολλές απόψεις (επιστημονική, νομική, γλωσσολογική, κλπ.), εννοώντας ένα τρόπο έκφρασης με αυξημένη προσοχή και ακρίβεια, ή περισσότερο επιτηδευμένο από την καθημερινή ομιλία. Στο λήμμα αυτό παρουσιάζεται η ακριβής έννοια που είναι αντικείμενο μελέτης της θεωρίας τυπικών γλωσσών.
Το αλφάβητο έστω ότι είναι το .
Μια στοιχειοσειρά φτιαγμένη με αυτό το αλφάβητο είναι, για παράδειγμα, η ababba.
Μια τυπική γλώσσα φτιαγμένη με αυτό το αλφάβητο, και που να περιέχει αυτή την στοιχειοσειρά, θα μπορούσε να είναι το σύνολο όλων των στοιχειοσειρών που περιέχουν τόσα σύμβολα a όσα και b.
Η κενή λέξη (δηλαδή η στοιχειοσειρά με μήκος μηδενικό) επιτρέπεται και συμβολίζεται συχνά με e, ε ή Λ.
Παρότι το αλφάβητο είναι πεπερασμένο σύνολο και κάθε στοιχειοσειρά έχει πεπερασμένο μήκος, η γλώσσα θα μπορούσε να αποτελείται από άπειρο πλήθος λέξεων (επειδή δεν τέθηκε άνω πέρας στο μήκος των στοιχειοσειρών).
Το πιο συνηθισμένο ερώτημα σχετικό με τις τυπικές γλώσσες είναι "πόσο δύσκολο είναι να αποφανθούμε αν μια δεδομένη λέξη ανήκει στην γλώσσα; " και είναι αντικείμενο της θεωρίας υπολογισιμότητας (computability theory) και της θεωρίας πολυπλοκότητας (complexity theory).
Πίνακας περιεχομένων |
[Επεξεργασία] Παραδείγματα τυπικών γλωσσών
- το σύνολο όλων των στοιχειοσειρών που σχηματίζονται από a,b
- το σύνολο , όπου n είναι Πρώτος αριθμός και an σημαίνει σειρά χαρακτήρων a που είναι n στο πλήθος
- πεπερασμένες γλώσσες, όπως η a,aa,bba
- το σύνολο των συντακτικά σωστών προγραμμάτων σε δεδομένη γλώσσα προγραμματισμού
- το σύνολο των εισόδων για τις οποίες μια δεδομένη μηχανή Τούρινγκ σταματά.
[Επεξεργασία] Προδιαγραφή
Μια τυπική γλώσσα μπορεί να οριστεί με πολλούς διαφορετικούς τρόπους, όπως:
- Στοιχειοσειρές παραγόμενες από μια Τυπική γραμματική (δες Ιεραρχία Τσόμσκι)
- Στοιχειοσειρές παραγόμενες από μια Κανονική έκφραση
- Στοιχειοσειρές που γίνονται αποδεκτές από κάποιο αυτόματο, όπως είναι η Μηχανή Τούρινγκ ή το Αυτόματο πεπερασμένων καταστάσεων (finite state automaton)
- Από ένα σύνολο σχετιζομένων λογικών ερωτήσεων, εκείνες οι ερωτήσεις που έχουν απάντηση ΑΛΗΘΗΣ — Δες Πρόβλημα απόφασης.
[Επεξεργασία] Πράξεις
Αρκετές πράξεις μπορούν να εφαρμοσθούν για να παραχθούν νέες γλώσσες από δεδομένες γλώσσες.
Υποθέτουμε στα επόμενα ότι L1 και L2 είναι γλώσσες με το ίδιο αλφάβητο.
[Επεξεργασία] Συναλύσωση
Η συναλύσωση (concatenation) L1L2 αποτελείται από όλες τις στοιχειοσειρές μορφής vw όπου η v είναι στοιχειοσειρά της L1 και η w είναι στοιχειοσειρά της L2.
[Επεξεργασία] Τομή
Η τομή (intersection) των L1 και L2 αποτελείται από όλες τις στοιχειοσειρές της L1 που περιέχονται επίσης στην L2.
[Επεξεργασία] Ένωση
Η ένωση (union) της L1 με την L2 αποτελείται από όλες τις στοιχειοσειρές που περιέχονται στην L1 ή στην L2.
[Επεξεργασία] Συμπλήρωμα
Το συμπλήρωμα (complement) της γλώσσας L1 αποτελείται από όλες τις στοιχειοσειρές που σχηματίζονται από το αλφάβητο της γλώσσας, αλλά δεν περιέχονται στην L1.
[Επεξεργασία] Πηλίκο
Το δεξιό πηλίκο (right quotient) L1 / L2 της L1 δια της L2 αποτελείται από όλες τις στοιχειοσειρές v για τις οποίες υπάρχει μια στοιχειοσειρά w στην L2 τέτοια ώστε η συναλύσωση vw να περιέχεται στην L1.
[Επεξεργασία] Αστέρι Κλέινι
Το Αστέρι Κλέινι (Kleene star) αποτελείται από όλες τις στοιχειοσειρές που μπορούν να γραφούν στην μορφή w1w2...wn , όπου οι στοιχειοσειρές wi περιέχονται στην L1 και . Ας σημειωθεί ότι περιλαμβάνεται και η κενή στοιχειοσειρά ε επειδή επιτρέπεται το n = 0.
[Επεξεργασία] Αντίστροφο
Το αντίστροφο (reverse) περιέχει τις αντίστροφες (παλίνδρομες, καρκινικές) μορφές όλων των στοιχειοσειρών της L1.
[Επεξεργασία] Ανακάτεμα
Το ανακάτεμα (shuffle) των L1 και L2 απαρτίζεται από όλες τις στοιχειοσειρές που μπορούν να γραφούν στην μορφή v1w1v2w2...vnwn όπου και οι v1,...,vn είναι στοιχειοσειρές που η συναλύσωσή τους v1...vn περιέχεται στην L1 και οι w1,...,wn είναι στοιχειοσειρές που η συναλύσωσή τους w1...wn περιέχεται στην L2.
[Επεξεργασία] Δείτε επίσης
- Γλώσσα για γλώσσες γενικά
- Σύνταξη για την μορφή μιας γλώσσας γενικά
- Σημασιολογία για τις έννοιες σε μια γλώσσα
- Φυσική γλώσσα για γλώσσες που δεν είναι τυπικές
- Γλώσσα υπολογιστική για εφαρμογές τυπικών γλωσσών σε υπολογιστές
- Γλώσσα προγραμματισμού για εφαρμογές τυπικών γλωσσών σε προγραμματισμό υπολογιστών
[Επεξεργασία] Περαιτέρω διάβασμα
- Χόπκροφτ και Ούλμαν (Hopcroft, J. & Ullman, J), 1979 : Introduction to Automata Theory, Languages, and Computation. (Εισαγωγή στις θεωρίες Αυτομάτων, Γλωσσών, και Υπολογισμών), Addison Wesley, ISBN 020102988X
- Ρόζενμπεργκ και Σαλόμα (G. Rozenberg, A. Salomaa eds.), Handbook of Formal Languages (Εγχειρίδιο Τυπικών Γλωσσών), Springer-Verlag, (3 τόμοι)
- 33η Διεθνής Συνάντηση (Colloquium) ICALP 2006 για Αυτόματα, Γλώσσες και Προγραμματισμό
- 10ο Διεθνές Συνέδριο (Conference) DLT 2006 για εξελίξεις στην Θεωρία Γλωσσών
[Επεξεργασία] Πηγές
- Το άρθρο είναι μεταφορά στα ελληνικά του άρθρου w:en:Formal_language της αγγλικής Βικιπαίδειας.
Θεωρία αυτομάτων: τυπικές γλώσσες και τυπικές γραμματικές | |||
---|---|---|---|
Ιεραρχία Τσόμσκι | Γραμματικές | Γλώσσες | Ελάχιστο αυτόματο |
Τύπος-0 | Απεριόριστες | Αναδρομικά αριθμήσιμη | Μηχανή Τούρινγκ |
- | (χωρίς κοινό όνομα) | Αναδρομική | Αποφασιστής |
Τύπος-1 | Με συμφραζόμενα | Με συμφραζόμενα | Γραμμικό φραγμένο |
Τύπος-2 | Χωρίς συμφραζόμενα | Χωρίς συμφραζόμενα | Σωρού |
Τύπος-3 | Κανονική | Κανονική | Πεπερασμένο |
Κάθε κατηγορία γλώσσας ή γραμματικής είναι γνήσιο υποσύνολο της κατηγορίας που είναι ακριβώς από πάνω της. |