συστήματα

Γνώση Υπολογιστών >> συστήματα >  >> Unix

Τι είναι το lex και το yacc από την άποψη του λειτουργικού συστήματος unix;

lex και yacc είναι δύο θεμελιώδη εργαλεία που χρησιμοποιούνται στο λειτουργικό σύστημα UNIX για τη δημιουργία προγραμμάτων επεξεργασίας κειμένου, όπως μεταγλωττιστές και διερμηνείς.

LEX (Γεννήτρια Lexical Analyzer) είναι ένα πρόγραμμα που δημιουργεί λεξικούς αναλυτές, οι οποίοι είναι υπεύθυνοι για τη διάσπαση μιας ροής χαρακτήρων σε μεμονωμένα "tokens". Για παράδειγμα, ένας λεξικός αναλυτής μπορεί να αναγνωρίσει λέξεις, αριθμούς, σημεία στίξης ή άλλες λογικές μονάδες σε ένα αρχείο κειμένου. Εκτελεί το πρώτο στάδιο της μεταγλώττισης μετατρέποντας ροές χαρακτήρων σε μια ακολουθία διακριτικών.

YACC (Ένας άλλος μεταγλωττιστής μεταγλωττιστής) είναι μια γεννήτρια αναλυτών που δημιουργεί αναλυτές, τα οποία είναι προγράμματα που μπορούν να αναλύσουν τη γραμματική δομή μιας συμβολοσειράς διακριτικών. Οι αναλυτές επαληθεύουν τη σύνταξη της εισόδου και κατασκευάζουν ένα αφηρημένο δέντρο σύνταξης (AST) που αντιπροσωπεύει τη δομή του προγράμματος. Αυτή η αφηρημένη αναπαράσταση χρησιμοποιείται στη συνέχεια για περαιτέρω συλλογή ή ερμηνεία.

Το Lex και το Yacc χρησιμοποιούνται συνήθως μαζί για τη δημιουργία επεξεργαστών γλώσσας. Το πρόγραμμα lex δημιουργεί έναν λεξικό αναλυτή που διαμορφώνει το κείμενο εισόδου και το πρόγραμμα yacc δημιουργεί έναν αναλυτή που ελέγχει τη σύνταξη της εισόδου με διακριτικό και δημιουργεί το AST. Μαζί, αποτελούν ένα ισχυρό σύνολο εργαλείων για τη δημιουργία διαφόρων εφαρμογών επεξεργασίας γλώσσας, συμπεριλαμβανομένων μεταγλωττιστών, διερμηνέων, επεξεργαστών κειμένου και άλλων.

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα