title: Compilers
title: An introductory approach
titleType: AlternativeTitle
title: Μεταγλωττιστές
title: Μια εισαγωγική προσέγγιση
titleType: AlternativeTitle
Creators: name: Georgouli, Katerina
Publisher: name: Kallipos, Open Academic Editions
Year: 2022
Subjects: Μεταγλωττιστής
Διερμηνευτής
Μετάφραση
Τυπικές γλώσσες
Γλώσσες προγραμματισμού
Γραμματικές ελεύθερες περιεχομένου
Λεκτική ανάλυση
Συντακτική ανάλυση
Σημασιολογία
Ενδιάμεσος κώδικας
Δημιουργία κώδικα
Βελτιστοποίηση κώδικα
Πίνακας συμβόλων
Διαχείριση λαθών
Γεννήτριες λεκτικών αναλυτών
Γεννήτριες συντακτικών αναλυτών
Γραμματικές
Compiler
Interpreter
Translation
Formal languages
Programming languages
Context-free grammars
Scanning
Parsing
Semantics
Intermediate code
Code generation
Code optimization
Symbol table
Error handling
Lexical analyzer generators
Syntax analyzer generators
Grammars

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