Powered by OpenAIRE graph
Found an issue? Give us feedback
addClaim

Compilers

An introductory approach
Authors: Georgouli, Katerina;
Abstract

Σε αυτό το προπτυχιακό εκπαιδευτικό εγχειρίδιο επιχειρείται αρχικά μια συνοπτική παρουσίαση της λειτουργίας των μεταφραστών γλωσσών γενικότερα και ειδικότερα των μεταγλωττιστών γλωσσών προγραμματισμού. Στη συνέχεια, στο Κεφάλαιο 2, παρουσιάζονται οι τυπικές γλώσσες και οι γραμματικές που τις περιγράφουν με επικέντρωση στην περιγραφή των κανονικών γλωσσών μέσω κανονικών ορισμών. Στο Κεφάλαιο 3 περιγράφονται οι βασικές έννοιες της λεκτικής ανάλυσης και οι γνωστότερες τεχνικές κατασκευής λεκτικών αναλυτών. Στο Κεφάλαιο 4 παρουσιάζονται οι γραμματικές χωρίς συμφραζόμενα και οι ανοδικές και καθοδικές μέθοδοι συντακτικής ανάλυσης. Στο Κεφάλαιο 5 περιγράφεται η σημασιολογική ανάλυση, και ειδικότερα πώς μπορούν να υλοποιηθούν οι στατικοί έλεγχοι τύπων, ενώ το Κεφάλαιο 6 ασχολείται με τον ρόλο του πίνακα συμβόλων στο πλαίσιο των διαφορετικών φάσεων της μεταγλώττισης, καθώς και με την οργάνωση και την υλοποίησή του. Στο Κεφάλαιο 7 παρουσιάζεται η φάση της παραγωγής του ενδιάμεσου κώδικα, με τις διαφορετικές μορφές ενδιάμεσης αναπαράστασης, την παρουσίαση των ενδιάμεσων γλωσσών και τη χρήση σχημάτων για μετάφραση σε γλώσσα τριών διευθύνσεων. Ακολουθεί το Κεφάλαιο 8, στο οποίο παρουσιάζεται η βελτιστοποίηση του ενδιάμεσου κώδικα. Το Κεφάλαιο 9 αφορά τις δύο φάσεις του οπίσθιου τμήματος του μεταγλωττιστή, δηλαδή την παραγωγή και τη βελτιστοποίηση του τελικού κώδικα. Ακολουθούν παραρτήματα όπου παρουσιάζονται η εκφώνηση υποδειγματικής εργασίας για το εργαστήριο του μαθήματος και υποδειγματικές απαντήσεις στα ζητούμενα που περιέχει.

In this undergraduate textbook, a brief presentation of the operation of languages translators in general and of programming language compilers in particular is attempted at first. Then, in Chapter 2, regular languages and the grammars that describe them are introduced with a focus on describing regular languages through regular definitions. In Chapter 3, the basic concepts of lexical analysis and the best-known techniques for constructing lexical analyzers are described. In Chapter 4, context-free grammars and top-down and bottom-up methods of syntactic analysis are presented. Chapter 5 describes semantic analysis, and in particular how static type checks can be implemented, while Chapter 6 deals with the role of the symbol table in the context of the different phases of compilation as well as its organization and implementation. Chapter 7 presents the intermediate code generation phase, with the different forms of intermediate representation, the presentation of intermediate languages, and the use of schemes for translation into a three-address language. This is followed by Chapter 8, in which the optimization of intermediate code is presented. Chapter 9 deals with the two phases of the compiler's back end, that is, generating and optimizing the final code. Appendices follow where the speech of an exemplary work for the laboratory of the course and exemplary answers to the requirements is presented.

Keywords

Λεκτική ανάλυση, Διαχείριση λαθών, Μετάφραση, Interpreter, Translation, Βελτιστοποίηση κώδικα, Γεννήτριες λεκτικών αναλυτών, Code optimization, Symbol table, Compiler, Intermediate code, Γραμματικές ελεύθερες περιεχομένου, Μεταγλωττιστής, Lexical analyzer generators, Διερμηνευτής, Syntax analyzer generators, Τυπικές γλώσσες, Συντακτική ανάλυση, Scanning, Context-free grammars, Πίνακας συμβόλων, Parsing, Ενδιάμεσος κώδικας, Δημιουργία κώδικα, Σημασιολογία, Γλώσσες προγραμματισμού, Programming languages, Semantics, Γεννήτριες συντακτικών αναλυτών, Formal languages, Grammars, Code generation, Γραμματικές, Error handling

  • BIP!
    Impact byBIP!
    selected citations
    These citations are derived from selected sources.
    This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
    0
    popularity
    This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network.
    Average
    influence
    This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
    Average
    impulse
    This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network.
    Average
Powered by OpenAIRE graph
Found an issue? Give us feedback
selected citations
These citations are derived from selected sources.
This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
BIP!Citations provided by BIP!
popularity
This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network.
BIP!Popularity provided by BIP!
influence
This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
BIP!Influence provided by BIP!
impulse
This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network.
BIP!Impulse provided by BIP!
0
Average
Average
Average
Upload OA version
Are you the author of this publication? Upload your Open Access version to Zenodo!
It’s fast and easy, just two clicks!