Yacc: Διαφορά μεταξύ των αναθεωρήσεων
Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
Υπόλοιπη μετάφραση |
|||
Γραμμή 2:
Το πρόγραμμα '''yacc''' παράγει [[συντακτικός αναλυτής|συντακτικούς αναλυτές]] και δημιουργήθηκε από το Stephen C. Johnson στην [[AT&T]] για το [[λειτουργικό σύστημα]] [[Unix]]. Το όνομά του προέρχεται από τα αρχικά των λέξεων "Yet Another Compiler Compiler" ("άλλος ένας μεταγλωττιστής μεταγλωττιστών"). Παράγει ένα συντακτικό αναλυτή (το τμήμα του [[μεταγλωττιστής|μεταγλωττιστή]] που διαβάζει τον [[πηγαίος κώδικας|πηγαίο κώδικα]]) με βάση μια [[τυπική γραμματική|αναλυτική γραμματική]], γραμμένη σε μορφή κοντά στη [[Μορφή Μπάκους-Ναούρ|BNF]]. Από ιστορικής άποψης, το yacc παρήγαγε τον κώδικα για το συντακτικό αναλυτή της [[C (γλώσσα προγραμματισμού)|γλώσσας προγραμματισμού C]].<ref>[http://www.techworld.com.au/article/252319/-z_programming_languages_yacc?pp=1]</ref>
Το yacc ήταν η εξορισμού γεννήτρια συντακτικών αναλυτών στα περισσότερα συστήματα Unix, αλλά σήμερα έχει πια αντικατασταθεί από πιο σύγχρονα (αλλά συμβατά) προγράμματα, όπως το Berkeley Yacc, το [[GNU bison]], το MKS yacc και το Abraxas pcyacc. Μια ενημερωμένη έκδοση της αρχικής έκδοσης της AT&T συμπεριλαμβάνεται στο εγχείρημα [[OpenSolaris]] της [[Sun]]. Κάθε πρόγραμμα προσφέρει ελαφρές βελτιώσεις και επιπλέον στοιχεία σε σχέση με το αυθεντικό yacc, διατηρώντας τις ίδιες αρχές. Το yacc έχει επίσης γραφτεί πάλι για άλλες γλώσσες, όπως η Ratfor, η [[ML (γλώσσα προγραμματισμού)|ML]], η [[Ada]], η [[Pascal (γλώσσα προγραμματισμού)|Pascal]], η [[Java]], η [[Python]] και η [[Common Lisp]].
Ο συντακτικός αναλυτής που παράγεται από το yacc χρειάζεται ένα [[λεκτικός αναλυτής|λεκτικό αναλυτή]]. Υπάρχουν γεννήτριες συντακτικών αναλυτών, όπως το [[Lex]] ή το [[Flex]] και το πρότυπο IEEE [[POSIX]] P1003.2 ορίζει τι λειτουργίες και απαιτήσεις έχουν το Lex και το Yacc.
Κάποιες εκδόσεις του yacc της AT&T αποτελούν [[λογισμικό ανοιχτού κώδικα]]. Για παράδειγμα, υπάρχει διαθέσιμος πηγαίος κώδικας (για διάφορες υλοποιήσεις) στις διανομές του [[Plan 9 from Bell Labs|Plan 9]] και του [[OpenSolaris]].
== Δείτε επίσης ==
* [[Κατάλογος βοηθημάτων του Unix]]
* [[Lex]] (και [[Flex]]), οι πιο συχνά χρησιμοποιούμενοι λεκτικοί αναλυτές για yacc (και Bison).
* [[Μορφή Μπάκους Ναούρ|BNF]], μια μετασύνταξη για [[γραμματικής χωρίς συμφραζόμενα|γραμματικές χωρίς συμφραζόμενα]]: δηλ. για τυπικούς τρόπους ορισμού τυπικών γλωσσών
▲* [[GNU bison|Bison]]: The GNU version of Yacc.
== Αναφορές ==
|