ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. Λογισμικό Συστήματος. Κλειώ Σγουροπούλου

Σχετικά έγγραφα
Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

Εισαγωγή. Γλώσσες προγραμματισμού Μεταγλωττιστές Αναγκαιότητα και ιστορική αναδρομή

Γλώσσες Προγραμματισμού Μεταγλωττιστές

Μεταγλωττιστής. Μεταφραστές. Γλώσσες. Είδη Μεταγλωττιστών. Μεταγλωττιστής Τελικό πρόγραµµα (object program) Εισαγωγή Αρχικό πρόγραµµα (source program)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

ΚΕΦΑΛΑΙΟ 6: Γλώσσες. 6.1 Ιστορική εξέλιξη 6.4 Υλοποίηση γλώσσας. Κεφάλαιο 6: «Γλώσσες Προγραµµατισµού»

Κεφάλαιο 2: Μεταφραστές

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 1 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Έστω συμβολοσειρά Το σύνολο FIRST περιέχει τα τερματικά σύμβολα από τα οποία αρχίζουν οι συμβολοσειρές που παράγονται από την

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

ΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ. Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος.

Κεφάλαιο 2: Τυπικές γλώσσες

Μεταγλωττιστές Ενότητα 1: Εισαγωγή

Σχεδίαση Γλωσσών Προγραμματισμού Λεξική Ανάλυση Ι. Εαρινό Εξάμηνο Lec 05 & & 26 /02/2019 Διδάσκων: Γεώργιος Χρ.

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1

Σχεδίαση Γλωσσών Προγραμματισμού Συντακτική Ανάλυση Ι. Εαρινό Εξάμηνο Lec /03/2019 Διδάσκων: Γεώργιος Χρ. Μακρής

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού

Κεφάλαιο 6 Εισαγωγή στον Προγραμματισμό. 26-Jun-15 ΑΕΠΠ - Καραμαούνας Π. 1

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στην αναγκαιότητα ύπαρξης των μεταγλωττιστών

Εισαγωγή στον προγραμματισμό

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο

Μεταγλωττιστές. Εργαστήριο 5. Εισαγωγή στο BISON. Γεννήτρια Συντακτικών Αναλυτών. 2 η Φάση Μεταγλώττισης Συντακτική Ανάλυση

Μεταγλωττιστές. Δημήτρης Μιχαήλ. Ακ. Έτος Εισαγωγή. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Μεταγλωττιστές. Δημήτρης Μιχαήλ. Ακ. Έτος Ανοδικές Μέθοδοι Συντακτικής Ανάλυσης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο

Θέματα Μεταγλωττιστών

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

Εργαστήριο 08 Εισαγωγή στo Yacc

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

εύτερη γενιά: γλώσσα assembly

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στις βασικές έννοιες που σχετίζονται με τη λεξική ανάλυση. Στη δήλωση ορισμό κανονικών εκφράσεων

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος

Μεταγλωττιστές. μια φοιτητική προσέγγιση

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

Κεφάλαιο 2: Τυπικές γλώσσες. Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος / 216

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

Σχεδίαση Γλωσσών Προγραμματισμού Συντακτική Ανάλυση ΙII. Εαρινό Εξάμηνο Lec 11 26/03/2019 Διδάσκων: Γεώργιος Χρ. Μακρής

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Στέφανος Ουγιάρογλου

Εισαγωγή στον Προγραμματισμό

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Θέματα Μεταγλωττιστών

Σχεδίαση Αλγορίθμων (κεφάλαιο 2 του παρόντος μαθήματος) Αρχιτεκτονική Υπολογιστών (κεφάλαιο 4 του παρόντος μαθήματος)

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια.

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΜΑΘΗΜΑ: Μεταγλωττιστές

Γλώσσες Προγραμματισμού Μεταγλωττιστές. Σημασιολογική Ανάλυση

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

Μεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 9 ο

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ

Μαλούτα Θεανώ Σελίδα 1

Γλώσσες Προγραμματισμού Μεταγλωττιστές. Λεκτική Ανάλυση

Γλώσσες Προγραμματισμού Μεταγλωττιστές. Συντακτική Ανάλυση με το Εργαλείο BISON

Πίνακας Περιεχοµένων Πρόλογος Κεφάλαιο Βασικές εισαγωγικές έννοιες

Α. Ερωτήσεις Ανάπτυξης

Πληροφορική 2. Γλώσσες Προγραμματισμού

Σημαντικές δυνατότητες των σύγχρονων υπολογιστικών μηχανών: Αξιόπιστη καταγραφή πολύ μεγάλου όγκου δεδομένων

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Μεταγλωττιστές. Ενότητα 7: Συντακτική ανάλυση (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Δομημένος Προγραμματισμός (ΤΛ1006)

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 1: Εισαγωγικές έννοιες

Περιεχόμενα Τι περιγράφει ένα ΣΔ ΣΔ και παραγωγές Θεωρία Υπολογισμού Ενότητα 15: Συντακτικά Δέντρα Επ. Καθ. Π. Κατσαρός Τμήμα Πληροφορικής Επ. Καθ. Π.

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΔΟΜΗΜΕΝΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Γ ΕΠΑΛ

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 3 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Γλώσσες Χωρίς Συμφραζόμενα

Προγραμματισμός Υπολογιστών

Παρουσίαση του εργαλείου BISON

ΚΕΦΑΛΑΙΟ VI. Εισαγωγή στον προγραμματισμό

ΑΕΠΠ Ερωτήσεις θεωρίας

6. 1 Η έννοια του προγράμματος

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 4 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ:

Περί Προγραμματισμού και Γλωσσών Προγραμματισμού

Δομές Δεδομένων Boost C++ Libraries. 23/3/2017 ΜΠΟΜΠΟΤΑΣ ΑΓΟΡΑΚΗΣ

Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Μεταγλωττιστές. Σημασιολογική Ανάλυση. Εργαστήριο 9. Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι

Δομημένος Προγραμματισμός

ΚΕΦΑΛΑΙΟ 6 Ο ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.

Δομημένος Προγραμματισμός

Κεφάλαιο 3 Η Σημασιολογία των Γλωσσών Προγραμματισμού

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Επιµέλεια Θοδωρής Πιερράτος

Κεφάλαιο 3 : Σύνταξη Γλωσσών Προγραμματισμού

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 8 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΝΕΟ ΚΑΙ ΠΑΛΑΙΟ ΣΥΣΤΗΜΑ

Transcript:

Λογισμικό Συστήματος Κλειώ Σγουροπούλου

Λογισμικό συστήματος Λειτουργικό σύστημα Μεταφραστές γλώσσας (translators) Διερμηνείς (interpreters) Μεταγλωττιστές (compilers) Εκδότες (editors) Φορτωτές (loaders) Συνδέτες (linkers) Λογισμικό επικοινωνίας

ΓΠΥΕ vs. ΓΜ Γλώσσες προγραμματισμού υψηλού επιπέδου Ευκολότερη κατανόηση Προστασία από λάθη κατά την έκφραση αλγορίθμων Μεταφερσιμότητα / φορητότητα Γλώσσες Μηχανής Γρηγορότερα και συντομότερα προγράμματα Άμεση πρόσβαση σε στοιχεία του υλικού Συντονισμός

Διερμηνέας Ο διερμηνέας είναι ένα πρόγραμμα το οποίο διαβάζει, μεταφράζει και εκτελεί δήλωση προς δήλωση προγράμματα που έχουν γραφτεί σε μια γλώσσα υψηλού επιπέδου αρχή προγράμματος υψηλού επιπέδου repeat μετάφρασε την επόμενη δήλωση υψηλού επιπέδου if κανένα συντακτικό λάθος then εκτέλεσε else ανάφερε λάθος until τέλος προγράμματος υψηλού επιπέδου ή συντακτικό λάθος

Μεταγλωττιστής Ο μεταγλωττιστής είναι ένα πρόγραμμα το οποίο διαβάζει προγράμματα που έχουν γραφτεί σε μια γλώσσα υψηλού επιπέδου την πηγαία (source) γλώσσα και τα μεταφράζει σε ισοδύναμα προγράμματα σε μια άλλη γλώσσα γώσσα μεταφοράς (target) αρχή προγράμματος υψηλού επιπέδου repeat μετάφρασε την επόμενη δήλωση υψηλού επιπέδου until τέλος προγράμματος υψηλού επιπέδου εκτέλεση ολόκληρου του μεταφρασμένου προγράμματος

Μεταφραστές vs. Μεταγλωττιστές Μεταφραστές Πολλαπλή μετάφραση ίδιων δηλώσεων προγράμματος (επιβάρυνση στην ταχύτητα εκτέλεσης) Μεγαλύτερη ικανότητα εντοπισμού σφαλμάτων Ενδείκνυται κατά την ανάπτυξη Μεταγλωττιστές Επαναληπτική εκτέλεση μεταγλωττισμένων προγραμμάτων Ταχύτητα Ενδείκνυται για παραγωγική χρήση

Το περιβάλλον του μεταγλωττιστή skeletal source program preprocessor compiler assembler Loader/link-editor editor source program absolute machine code target assembly program relocatable machine code library, relocatable object files

Φάσεις και προϊόντα μεταγλώττισης Ανάλυση Πίνακας συμβόλων Σύνθεση αρχικό πρόγραμμα Λεκτική ανάλυση λεκτικές μονάδες Συνακτική ανάλυση συντακτικό δέντρο Σημασιολογική ανάλυση συντακτικό δέντρο Παραγωγή ενδ. κώδικα ενδιάμεσος κώδικας Βελτιστοποίηση ενδ. κώδικα Παραγωγή τελικού κώδικα τελικός κώδικας Βελτιστοποίηση τελικού κώδικα τελικό πρόγραμμα ενδιάμεσος κώδικας Χειριστής σφαλμάτων

Παράδειγμα Αρχείο εισόδου test.c Αρχείο εξόδου test.out main: int A; int B; main() { } A = B+123;.comm A,4.comm B,4 mov B,d0 mov #123,d1 add d1,d0 mov d0,a ret

Λεξική ανάλυση (scanning) Κατασκευή λεκτικών μονάδων (lexemes) από χαρακτήρες εισόδου πηγαίου προγράμματος (Regular expressions, transition diagrams) Κατηγοριοποίηση λεκτικών μονάδων σε κουπόνια (tokens) Συστατικά κουπονιών: Τύπος: Τα κουπόνια αποτελούν ακολουθίες χαρακτήρων που εκφράζουν μια γενική έννοια: λέξη κλειδί (keyword), όνομα (identifier), σταθερά (constant), τελεστής (οperator) και διαχωριστής (delimiter) Τιμή π.χ. (CONST, 123 )) (IDENT, A )

Λεξική ανάλυση (scanning) Αφαίρεση κενών και περιττών χαρακτήρων (tabs, new lines) Αφαίρεση των σχολίων Έλεγχος λαθών Έλεγχος μεγέθους identifiers/string string constants, βάσει κανόνων γλώσσας Έλεγχος μη νόμιμων identifiers Έλεγχος λανθασμένων αναθέσεων

Παράδειγμα: Λεξική ανάλυση Είσοδος: ακολουθία χαρακτήρων int sp sp A; nl nl int sp sp B; nl nl main() nl nl { nl A sp = sp Έξοδος: ακολουθία κουπονιών ΙΝΤtok ΙDENΤtok() SEMICOLONtok ΙΝΤtok ΙDENΤtok() SEMICOLONtok ΙDENΤtok() LBRACKETtok RBRACKETtok LCURLYtok ΙDENΤtok() Eqtok ΙDENΤtok() PLUStok CONSTtok 123 SEMICOLONtok RCURLYtok A B sp B+123; nl Symbol Table main nl } nl

Γραμματικές Ο ορισμός μιας γλώσσας προγραμματισμού περιλαμβάνει: Συντακτικό: κανόνες για την κατασκευή αποδεκτών διατυπώσεων. Ο τρόπος εφαρμογής των συντακτικών κανόνων καθορίζει τη συντακτική ορθότητα ενός προγράμματος Σημασιολογία: μοντελοποίηση δεδομένων και λειτουργιών, ισοδυναμίες προγραμμάτων, κ.λπ.

Γραμματικές Συντακτικό: συνήθως καθορίζεται από γραμματικές χωρίς συμφραζόμενα (ΓΧΣ) (context-free grammars / BNF) Παράδειγμα BNF παραγωγής: stat -> if ( exp ) stat else stat τερματικά: if, (, ), else μη-τερματικά τερματικά: stat, exp Κάθε παραγωγή αποτυπώνει έναν έγκυρο τρόπο με βάση τον οποίο τα μη-τερματικά μπορούν να αναπτυχθούν σε συμβολοσειρές τερματικών και μη-τερματικών

Ορισμός ΓΧΣ Μια ΓΧΣ περιλαμβάνει: t: σύνολο κουπονιών ( τερματκά ) nt: σύνολο μη-τερματικών P: σύνολο παραγωγών S: ένα μη-τερματικό αρχικό σύμβολο Παράδειγμα bin -> > bin + dig bin -> > bin dig bin -> > dig dig -> 0 dig -> 1 bin -> > bin + dig bin dig dig dig -> 0 1

Ορισμός ΓΧΣ Με αφετηρία το αρχικό σύμβολο και συνεχή αντικατάσταση κάθε μη-τερματικού με το δεξί μέρος της αντίστοιχης παραγωγής, προκύπτουν συμβολοσειρές τερματικών Μια τέτοια συμβολοσειρά μη-τερματικών καλείται προτασιακή μορφή Η γλώσσα μιας γραμματικής είναι το σύνολο όλων των προτασιακών μορφών που μπορούν να παραχθούν από το αρχικό της σύμβολο

Συντακτική ανάλυση (parsing) Έλεγχος γραμματικής ορθότητας προγράμματος εισόδου Κατασκευή αντίστοιχου συντακτικού δένδρου (Abstract Syntax Tree) Δυο γενικές κατηγορίες συντακτικών αναλυτών "συντακτικοί αναλυτές από πάνω προς τα κάτω" (top-down parsers) "συντακτικοί αναλυτές από κάτω προς τα πάνω" (bottom-up parsers)

Συντακτική ανάλυση: : top-down Εκκίνηση από ρίζα δένδρου (αρχικό σύμβολο γραμματικής) πορεία προς τα φύλλα (συμβολοσειρά εισόδου) με διαδοχικές αντικαταστάσεις των μη- τερματικών συμβόλων χρησιμοποιώντας τους συντακτικούς κανόνες της γραμματικής από αριστερά προς τα δεξιά

Συντακτική ανάλυση: top-down 1. Ξεκίνα από το ΑΣ 2. Εξέτασε κάθε εναλλακτική παραγωγή για το ΑΣ 3. Σύγκρινε το κουπόνι εισόδου με το πρώτο σύμβολο του δεξιού μέρους κάθε εναλλακτικής παραγωγής 4. Αν βρεθεί αντίστοιχη παραγωγή χρησιμοποίησέ τη για επέκταση δένδρου 5. Επανέλαβε για επόμενο κουπόνι εισόδου με στοχο τον καθορισμό παραγωγής για το επόμενο μη τερματικό

Συντακτική ανάλυση: : top-down Παράδειγμα stat -> begin statlist S statlist -> > stat ; statlist end

Συντακτική ανάλυση: : top-down ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ

Συντακτική ανάλυση: : bottom-up Εκκίνηση από τα φύλλα (συμβολοσει- ρά εισόδου) πορεία προς τη ρίζα (αρχικό σύμβολο) με διαδοχική αναγνώριση δεξιού μέλους συντακτικών κανόνων και αντικατάσταση με τα αριστερά τους μέλη.

Συντακτική ανάλυση: : bottom-up Αναλυτές «ολίσθησε-ελάττωσε» 1. Τοποθέτησε στη στοίβα (ολίσθησε - shift)σύμβολα εισόδου μέχρι να εμφανισθεί το δεξιό μέλος κάποιου συντακτικού κανόνα στην κορυφή της 2. Αφαίρεσε από τη στοίβα (ελάττωσε reduce) αυτό το δεξιό μέλος και στη θέση του τοποθέτησε το αντίστοιχο αριστερό του μέλος. 3. Επανέλαβε έως ότου σαρωθεί όλη η συμβολοσειρά εισόδου και μείνει στη στοίβα μόνο το αρχικό σύμβολο της γραμματικής.

Συντακτική ανάλυση: : bottom-up Παράδειγμα Rule A: stat -> begin statlist S Rule B: statlist -> stat ; statlist end

Γέννηση κώδικα Εκχώριση ελεύθερης μνήμης στα δεδομένα που διαχειρίζεται το πρόγραμμα Χρήση δηλωτικής πληροφορίας Δημιουργία εντολών σε γλώσσα μηχανής για κάθε συντακτικό στοιχείο