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

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
μ Ρομπότ: Προσθήκη: gl:Gramática formal
JohnMad (συζήτηση | συνεισφορές)
μΧωρίς σύνοψη επεξεργασίας
Γραμμή 1:
Στην [[Επιστήμηεπιστήμη Υπολογιστώνυπολογιστών]] μια '''τυπική γραμματική''' (formal grammar) είναι μια [[αφηρημένη δομή]] που περιγράφει μια [[Τυπικήτυπική γλώσσα]] επακριβώς, δηλαδή είναι ένα σύνολο κανόνων που απεικονίζουν με μαθηματικάμαθηματικώς το [[Σύνολοσύνολο|σύνολο]], (συνήθως [[Σύνολοσύνολο|απειροσύνολο]]), των πεπερασμένου μήκους [[Στοιχειοσειρά|στοιχειοσειρών]] / συμβολοσειρών που σχηματίζονται με διακριτά στοιχεία / σύμβολα (π.χ. γράμματα), τα οποία ανήκουν σε ένα σύνολο, συνήθως πεπερασμένο, που το λέμε ''αλφάβητο''. Οι τυπικές γραμματικές ονομάστηκαν έτσι κατ’ αναλογία των [[γραμματική|γραμματικών]] των γλωσσών που μιλούν οι άνθρωποι, αλλά τα αλφάβητα τους δεν περιέχουν κατ’ ανάγκη γράμματα. Οι τυπικές γραμματικές διαχωρίζονται σε δυο κύριες κατηγορίες: ''γενετικές'' (generative) και ''αναλυτικές'' (analytic).
 
Μια [[Γενετικήγενετική γραμματική]], (το πιο γνωστό είδος, που θα μπορούσε να ονομάζεται γεννητική ή παραγωγική γραμματική), είναι ένα σύνολο κανόνων με το οποίο όλες οι στοιχειοσειρέςσυμβολοσειρές που μπορούν να υπάρξουν σε μια γλώσσα μπορούν να παραχθούν με διαδοχικά [[Στοιχειοσειρά#Συναλύσωση|επιθέματα]] ξεκινώντας από ένα προκαθορισμένο ''αρχικό σύμβολο δημιουργίας στοιχειοσειράς''. Μια γενετική γραμματική ουσιαστικά είναι η τυπική μορφή του [[Αλγόριθμοςαλγόριθμος|αλγορίθμου]] παραγωγής στοιχειοσειρών που ανήκουν στην γλώσσα.
Οι τυπικές γραμματικές ονομάστηκαν έτσι κατ’ αναλογία των [[Γραμματική|γραμματικών]] των γλωσσών που μιλούν οι άνθρωποι, αλλά τα αλφάβητά τους δεν περιέχουν κατ’ ανάγκη γράμματα. Οι τυπικές γραμματικές διαχωρίζονται σε δυο κύριες κατηγορίες : ''γενετικές'' (generative) και ''αναλυτικές'' (analytic).
 
Μια [[Γενετική γραμματική]], (το πιο γνωστό είδος, που θα μπορούσε να ονομάζεται γεννητική ή παραγωγική γραμματική), είναι ένα σύνολο κανόνων με το οποίο όλες οι στοιχειοσειρές που μπορούν να υπάρξουν σε μια γλώσσα μπορούν να παραχθούν με διαδοχικά [[Στοιχειοσειρά#Συναλύσωση|επιθέματα]] ξεκινώντας από ένα προκαθορισμένο ''αρχικό σύμβολο δημιουργίας στοιχειοσειράς''. Μια γενετική γραμματική ουσιαστικά είναι η τυπική μορφή του [[Αλγόριθμος|αλγορίθμου]] παραγωγής στοιχειοσειρών που ανήκουν στην γλώσσα.
 
:Συνοπτικά για την γενετική γραμματική :
Γραμμή 10 ⟶ 8 :
:* εφαρμόζεται παραγωγική (top-down) προσέγγιση, από το γενικό προς το μερικό.
 
Μια [[Αναλυτικήαναλυτική γραμματική]], αντιθέτως, είναι ένα σύνολο κανόνων που υποθέτουν ότι μιάμία αυθαίρετη στοιχειοσειρά δίνεται προς επεξεργασία και με διαδοχικά βήματα ανάλυσης προκύπτει ως αποτέλεσμα η τιμή μιας [[Μεταβλητήμεταβλητή (προγραμματισμόςυπολογιστές)#Λογικές μεταβλητές|λογικής μεταβλητής]]:
* ΑΛΗΘΗΣ, αν η στοιχειοσειρά ανήκει στην γλώσσα που περιγράφει η αναλυτική γραμματική
* ΨΕΥΔΗΣ, αν η στοιχειοσειρά δεν ανήκει στην γλώσσα που περιγράφει η αναλυτική γραμματική.
 
:Συνοπτικά για την αναλυτική γραμματική :
:* σαρώνει την στοιχειοσειρά, τεχνολογεί τα μέρη που την αποτελούν και τα αναγνωρίζει, (είναι [[Συντακτική ανάλυση (προγραμματισμόςυπολογιστές)|συντακτικός αναλυτής]] (parser)), δηλαδή ''διαβάζει την γλώσσα'',
:* η πορεία είναι από τις λέξεις της γλώσσας προς την γραμματική της,
:* εφαρμόζεται επαγωγική (bottom-up) προσέγγιση, από το μερικό προς το γενικό.