Τυπική γλώσσα: Διαφορά μεταξύ των αναθεωρήσεων

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
Polyvios (συζήτηση | συνεισφορές)
Polyvios (συζήτηση | συνεισφορές)
cleaner, το αγγλικό άρθρο δεν είναι ο,τι καλύτερο. μετακίνηση της "θεωρίας" σε δικό της άρθρο.
Γραμμή 1:
:''Το άρθρο αυτό αναφέρεται στον όρο '''τυπική γλώσσα''' όπως χρησιμοποιείται στα μαθηματικά, τη λογική και την επιστήμη υπολογιστών. Για πληροφορίες για τον τρόπο έκφρασης που είναι πιο πειθαρχημένος ή ακριβής από την καθημερινή καθομιλουμένη γλώσσα, βλέπε [[επίσημη ορολογία]].''
 
Στα [[Μαθηματικά]], στην [[Λογική]], και στην [[Επιστήμη Υπολογιστών]], μια '''τυπική γλώσσα''' (formal language) ή απλώς '''γλώσσα''' είναι η γλώσσα που ορίζεται από ακριβείς μαθηματικούς τύπους, ή τύπους που μπορεί να επεξεργαστεί μια μηχανή. ΌπωςΠιό καιαναλυτικά, οιμια γλώσσεςγλώσσα στη<μath>\boldsymbol{L}</math>ορίζεται [[γλωσσολογία]],ως οιένα τυπικέςπιθανώς γλώσσεςάπειρο έχουνσύνολο γενικάαπό δυοπεπερασμένου πλευρές:μήκους σειρές από στοιχεία που προέρχονται από ένα καθορισμένο πεπερασμένο σύνολο <math>\boldsymbol{A}</math>. Ο κλάδος που μελετά τις ιδιότητες των τυπικών γλωσσών λέγεται [[θεωρία τυπικών γλωσσών]].
 
Όπως και οι γλώσσες στη [[γλωσσολογία]], οι τυπικές γλώσσες έχουν γενικά δυο πλευρές:
*Το [[συντακτικό]] μιας γλώσσας έχει να κάνει με το πως φαίνεται η γλώσσα, ή, πιό επίσημα, είναι το σύνολο όλων των πιθανών εκφράσεων που ανήκουν στη γλώσσα.
*Η [[σημασιολογία]] (ή [[σημαντική]]) έχει να κάνει με την ερμηνεία των φράσεων της γλώσσας, και ορίζεται επίσημα με διάφορους τρόπους, ανάλογα με το είδος της εκάστοτε γλώσσας.
 
== Ορισμός ==
== Θεωρία τυπικών γλωσσών ==
Έστω:
* ένα σύνολο <math>\boldsymbol{A}</math>,
* <math>w</math> μια [[διάταξη με επανατοποθέτηση]] της μορφής <math>c_1c_2...c_n</math> πεπερασμένου μήκους <math>n</math>, κατασκευασμένη από στοιχεία <math>c_1,...,c_n \in \boldsymbol{A}</math> του συνόλου <math>\boldsymbol{A}</math>,
* το σύνολο <math>\boldsymbol{A}^*</math> όλων των δυνατών διατάξεων στοιχείων του <math>\boldsymbol{A}</math> που έχουν πεπερασμένο μήκος, και
* ένα υποσύνολο <math>\boldsymbol{L} \in \boldsymbol{A}^*</math>.
 
Τότε ορίζουμε ότι:
Ο κλάδος των μαθηματικών και της επιστήμης υπολογιστών που μελετά αποκλειστικά τη θεωρία της σύνταξης των γλωσσών λέγεται θεωρία '''τυπικών γλωσσών'''. Στη θεωρία τυπικών γλωσσών, μια γλώσσα δεν είναι τίποτα παραπάνω από το συντακτικό της. Η ειδικότητα αυτή δεν απευθύνεται σε θέματα ερμηνείας.
* Το σύνολο <math>\boldsymbol{AL}</math> λέγεταιείναι τομια ''αλφάβητο''τυπική της γλώσσαςγλώσσα'''.
* Το σύνολο <math>\boldsymbol{A}</math> λέγεται το '''αλφάβητο''' της γλώσσας.
* Κάθε στοιχείο του <math>c \in \boldsymbol{A}</math> λέγεται '''σύμβολο''' ή '''χαρακτήρας''' του αλφαβήτου.
* Κάθε διάταξη πεπερασμένου μήκους <math>w \in \boldsymbol{A}^*</math> λέγεται '''[[συμβολοσειρά]]''' του αλφαβήτου, και επιπλέον αν <math>w \in \boldsymbol{L}</math> τότε λέγεται και '''λέξη'''.
 
== Παράδειγμα ==
=== Στοιχειώδες παράδειγμα ===
Στα μαθηματικάΣυνήθως, μια '''τυπική γλώσσα''' αποτελείται από δύο μέρη. Ένα ''αλφάβητο'' και κανόνες ''συντακτικού''. Το αλφάβητο είναι οποιοδήποτε σύνολο από σύμβολα. Οι κανόνες του συντακτικού είναι σχέσεις που πρέπει να ικανοποιεί μια [[συμβολοσειρά]] από τα σύμβολα αυτά για να θεωρείται μέρος της τυπικής γλώσσας.
 
Θεωρήστε ένα απλό παράδειγμα, το αλφάβητο {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, +, =}, και τους ακόλουθους συντακτικούς κανόνες:
Γραμμή 20 ⟶ 31 :
 
Υπό αυτούς τους κανόνες, η συμβολοσειρά "23+4=555" ανήκει στη γλώσσα, ενώ η συμβολοσειρά "-234=+" δεν ανήκει. Η '''τυπική γλώσσα''' αυτή περιγράφει αριθμούς, καλώς ορισμένες εκφράσεις πρόσθεσης, και καλώς ορισμένες εξισώσεις προσθέσεων, αλλά εκφράζει μόνο το πως φαίνονται (το [[συντακτικό]] τους), και όχι το τι σημαίνουν (τη [[σημειολογία]] ή [[σημαντική]] τους). Για παράδειγμα, δεν ορίζεται πουθενά στους παραπάνω κανόνες ότι το σύμβολο 0 σημαίνει τον αριθμό μηδέν ή ότι το σύμβολο + σημαίνει πρόσθεση.
 
 
=== Ορισμός και βασική ορολογία ===
 
Στη θεωρία τυπικών γλωσσών, μια γλώσσα ορίζεται ως ένα πιθανώς άπειρο σύνολο από πεπερασμένου μήκους σειρές από στοιχεία που προέρχονται από ένα καθορισμένο πεπερασμένο σύνολο <math>\boldsymbol{A}</math>.
 
Το σύνολο <math>\boldsymbol{A}</math> λέγεται το ''αλφάβητο'' της γλώσσας.
Κάθε στοιχείο του <math>\boldsymbol{A}</math> λέγεται ''σύμβολο'' ή ''χαρακτήρας''.
Μια πεπερασμένη σειρά συμβόλων/χαρακτήρων λέγεται ''[[συμβολοσειρά]]'', και ένα στοιχείο της γλώσσας λέγεται ''λέξη''.
 
Όμως, η θεωρία δεν ασχολείται καθόλου με εφαρμογές, και είναι επομένως τελείως ουδέτερη ως προς το τι εννοούν τα σύμβολα και οι λέξεις.
 
Για παράδειγμα, στη [[γλωσσολογία]], η θεωρία τυπικών γλωσσών μπορεί να εφαρμοστεί ταυτόχρονα σε πολλά διαφορετικά επίπεδα για την περιγραφή μιας γλώσσας:
 
*Στο [[συντακτικό]], που περιγράφει πως ''λέξεις'' στο ''λεξικό'' ή ''λεξιλόγιο'' συνδυάζονται για να δημιουργήσουν ''προτάσεις''.
*Στη [[μορφολογία]], που περιγράφει πως ''μέρη λέξεων'' συνδυάζονται για να δημιουργήσουν ''λέξεις''.
*Στην [[ορθογραφία]] που περιγράφει πως ''χαρακτήρες'' (που ανήκουν στο ''αλφάβητο'') συνδυάζονται για δημιουργήσουν ''λέξεις''.
*Στην [[φωνολογία]] που περιγράφει πως ''φωνήματα'' συνδυάζονται για να δημιουργήσουν ''λέξεις''.
 
== Ορισμός ==
 
Μία '''άπειρη τυπική γλώσσα''' ''L'' ορίζεται βάση του σχήματος:
 
<math> L = \{ w \in \Sigma ^* \ \colon w </math> έχει ιδιότητα <math> P \ \} </math>
 
όπου
* <math> \Sigma^* </math> το σύνολο των συμβολοσειρών επί του αλφαβήτου <math>\Sigma</math>,
* <math> w </math> λέξη (word) του συνόλου <math> \Sigma^* </math>
* <math> P </math> η κοινή ιδιότητα.
 
Ωστόσο, μια '''πεπερασμένη γλώσσα''' ''L'', μπορεί να οριστεί και με απαρίθμηση των λέξεων που την αποτελούν. Π.χ.<br>
<math> L = \{ aba,\ bzc,\ tr \} </math> είναι μία γλώσσα επί του <math> \Sigma = \{ a,\ b,\ c,\ ... , x,\ y,\ z \} </math> καθώς
μία γλώσσα δεν παύει να είναι ένα είδος συνόλου.
 
==Προδιαγραφή==