LEX (Γεννήτρια Lexical Analyzer) είναι ένα πρόγραμμα που δημιουργεί λεξικούς αναλυτές, οι οποίοι είναι υπεύθυνοι για τη διάσπαση μιας ροής χαρακτήρων σε μεμονωμένα "tokens". Για παράδειγμα, ένας λεξικός αναλυτής μπορεί να αναγνωρίσει λέξεις, αριθμούς, σημεία στίξης ή άλλες λογικές μονάδες σε ένα αρχείο κειμένου. Εκτελεί το πρώτο στάδιο της μεταγλώττισης μετατρέποντας ροές χαρακτήρων σε μια ακολουθία διακριτικών.
YACC (Ένας άλλος μεταγλωττιστής μεταγλωττιστής) είναι μια γεννήτρια αναλυτών που δημιουργεί αναλυτές, τα οποία είναι προγράμματα που μπορούν να αναλύσουν τη γραμματική δομή μιας συμβολοσειράς διακριτικών. Οι αναλυτές επαληθεύουν τη σύνταξη της εισόδου και κατασκευάζουν ένα αφηρημένο δέντρο σύνταξης (AST) που αντιπροσωπεύει τη δομή του προγράμματος. Αυτή η αφηρημένη αναπαράσταση χρησιμοποιείται στη συνέχεια για περαιτέρω συλλογή ή ερμηνεία.
Το Lex και το Yacc χρησιμοποιούνται συνήθως μαζί για τη δημιουργία επεξεργαστών γλώσσας. Το πρόγραμμα lex δημιουργεί έναν λεξικό αναλυτή που διαμορφώνει το κείμενο εισόδου και το πρόγραμμα yacc δημιουργεί έναν αναλυτή που ελέγχει τη σύνταξη της εισόδου με διακριτικό και δημιουργεί το AST. Μαζί, αποτελούν ένα ισχυρό σύνολο εργαλείων για τη δημιουργία διαφόρων εφαρμογών επεξεργασίας γλώσσας, συμπεριλαμβανομένων μεταγλωττιστών, διερμηνέων, επεξεργαστών κειμένου και άλλων.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα