Εγχειρίδιο Σχεδίασης και Ανάπτυξης Μεταγλωττιστών
Σκοπός του παρόντος συγγράμματος είναι η εισαγωγή του αναγνώστη στην επιστήμη των μεταγλωττιστών. Η προσέγγιση που επιλέγεται είναι αυτή της καθοδήγησης της γνώσης μέσα από τη διαδικασία ανάπτυξης. Σε αντίθεση με άλλα βιβλία που είναι διαθέσιμα στα ελληνικά και στα οποία δίνεται το βάρος στο θεωρητι...
Κύριοι συγγραφείς: | , |
---|---|
Μορφή: | 1 |
Γλώσσα: | Greek |
Έκδοση: |
2023
|
Θέματα: | |
Διαθέσιμο Online: | http://dx.doi.org/10.57713/kallipos-372 http://repository.kallipos.gr/handle/11419/11371 |
id |
kallipos-11419-11371 |
---|---|
record_format |
dspace |
spelling |
kallipos-11419-113712023-11-30T15:38:42Z Εγχειρίδιο Σχεδίασης και Ανάπτυξης Μεταγλωττιστών Handbook on Compiler Design and Development Μανής, Γεώργιος Manis, George Μεταγλωττιστής Λεκτική ανάλυση Συντακτική ανάλυση Παραγωγή ενδιάμεσου κώδικα Πίνακας συμβόλων Παραγωγή τελικού κώδικα Βελτιστοποίηση κώδικα Compiler Lexical analysis Syntax analysis Intermediate code generation Symbol table Final code generation Code optimization Σκοπός του παρόντος συγγράμματος είναι η εισαγωγή του αναγνώστη στην επιστήμη των μεταγλωττιστών. Η προσέγγιση που επιλέγεται είναι αυτή της καθοδήγησης της γνώσης μέσα από τη διαδικασία ανάπτυξης. Σε αντίθεση με άλλα βιβλία που είναι διαθέσιμα στα ελληνικά και στα οποία δίνεται το βάρος στο θεωρητικό υπόβαθρο, εδώ το θεωρητικό υπόβαθρο γίνεται όχημα και η ανάπτυξη το κίνητρο και ο οδηγός. Η πορεία του βιβλίου συμπίπτει με αυτή της ανάπτυξης του μεταγλωττιστή. Η ανάπτυξη ενός μεταγλωττιστή χωρίζεται σε φάσεις. Οι φάσεις της ανάπτυξης είναι η λεκτική ανάλυση, η συντακτική ανάλυση, η παραγωγή ενδιάμεσου κώδικα, η κατασκευή του πίνακα συμβόλων και η παραγωγή τελικού κώδικα. Για καθεμία από αυτές το βιβλίο αφιερώνει ένα ή δύο κεφάλαια, ενώ συμπληρώνεται με εισαγωγικά κεφάλαια για τις γραμματικές και τον ρόλο τους, ένα κεφάλαιο για θέματα βελτιστοποίησης κώδικα και ένα κεφάλαιο για εργαλεία αυτοματοποιημένων διαδικασιών ανάπτυξης μεταγλωττιστών. Στο βιβλίο ορίζεται μία εκπαιδευτική γλώσσα προγραμματισμού για την οποία υλοποιείται ένας πλήρως λειτουργικός μεταγλωττιστής, ο οποίος δέχεται ως είσοδο προγράμματα συνταγμένα στη γλώσσα αυτή και παράγει τον αντίστοιχο κώδικα σε γλώσσα μηχανής. Πρόκειται για μια γλώσσα προγραμματισμού που αντλεί ιδέες και δομές από τη C, αλλά είναι πιο μικρή τόσο στις υποστηριζόμενες δομές, όσο και σε προγραμματιστικές δυνατότητες. Παρόλο που οι προγραμματιστικές της δυνατότητες είναι μικρές, η εκπαιδευτική αυτή γλώσσα προγραμματισμού περιέχει πλούσια στοιχεία και η κατασκευή του μεταγλωττιστή της έχει να παρουσιάσει αρκετό ενδιαφέρον, αφού περιέχονται σε αυτήν πολλές εντολές που χρησιμοποιούνται από γνωστές γλώσσες προγραμματισμού, όπως είναι οι δημοφιλείς while και if-else, καθώς και κάποιες πρωτότυπες. Υποστηρίζει συναρτήσεις και διαδικασίες, μετάδοση παραμέτρων με αναφορά και τιμή, αναδρομικές κλήσεις, ενώ επιτρέπει φώλιασμα στη δήλωση συναρτήσεων και διαδικασιών. The purpose of the book is the introduction of the reader to the compiler construction technology. The book reinforces the acquirement of knowledge through the development experience. Contrary to other books, which are available in Greek and mostly focus on theoretical background, in this book the theoretical background is the vehicle and the development is the motivation and the guide. The structure of this book follows the phases of the compiler construction development. These phases are: lexical analysis, syntax analysis, intermediate code generation, symbol table construction and final code generation. Chapters for each phase, as well as chapters for formal grammars, code optimization and compiler development tools are incorporated. An educational programming language is defined, for which a fully functional compiler is implemented, which generates machine code starting from a source program. This educational programming language resembles to the C programming language. It is simpler than C, both in programming and data structures. Despite its limited programming capabilities, it supports most familiar programming structures, like "while" and "if-else", as well as some custom ones, the compilation of which is of special interest. It also supports functions and procedures, passing parameters by value and by reference, recursive functions and nesting functions of procedure. 2023-11-10T11:41:40Z 2023-11-30T08:39:27Z 2023-11-30T15:38:19Z 2023-11-10T11:41:40Z 2023-11-30T08:39:27Z 2023-11-30T15:38:19Z 1 978-618-228-141-3 http://dx.doi.org/10.57713/kallipos-372 http://repository.kallipos.gr/handle/11419/11371 el 1 302 application/pdf application/pdf application/pdf application/pdf |
institution |
Kallipos |
collection |
DSpace |
language |
Greek |
topic |
Μεταγλωττιστής Λεκτική ανάλυση Συντακτική ανάλυση Παραγωγή ενδιάμεσου κώδικα Πίνακας συμβόλων Παραγωγή τελικού κώδικα Βελτιστοποίηση κώδικα Compiler Lexical analysis Syntax analysis Intermediate code generation Symbol table Final code generation Code optimization |
spellingShingle |
Μεταγλωττιστής Λεκτική ανάλυση Συντακτική ανάλυση Παραγωγή ενδιάμεσου κώδικα Πίνακας συμβόλων Παραγωγή τελικού κώδικα Βελτιστοποίηση κώδικα Compiler Lexical analysis Syntax analysis Intermediate code generation Symbol table Final code generation Code optimization Μανής, Γεώργιος Manis, George Εγχειρίδιο Σχεδίασης και Ανάπτυξης Μεταγλωττιστών |
description |
Σκοπός του παρόντος συγγράμματος είναι η εισαγωγή του αναγνώστη στην επιστήμη των μεταγλωττιστών. Η προσέγγιση που επιλέγεται είναι αυτή της καθοδήγησης της γνώσης μέσα από τη διαδικασία ανάπτυξης. Σε αντίθεση με άλλα βιβλία που είναι διαθέσιμα στα ελληνικά και στα οποία δίνεται το βάρος στο θεωρητικό υπόβαθρο, εδώ το θεωρητικό υπόβαθρο γίνεται όχημα και η ανάπτυξη το κίνητρο και ο οδηγός. Η πορεία του βιβλίου συμπίπτει με αυτή της ανάπτυξης του μεταγλωττιστή. Η ανάπτυξη ενός μεταγλωττιστή χωρίζεται σε φάσεις. Οι φάσεις της ανάπτυξης είναι η λεκτική ανάλυση, η συντακτική ανάλυση, η παραγωγή ενδιάμεσου κώδικα, η κατασκευή του πίνακα συμβόλων και η παραγωγή τελικού κώδικα. Για καθεμία από αυτές το βιβλίο αφιερώνει ένα ή δύο κεφάλαια, ενώ συμπληρώνεται με εισαγωγικά κεφάλαια για τις γραμματικές και τον ρόλο τους, ένα κεφάλαιο για θέματα βελτιστοποίησης κώδικα και ένα κεφάλαιο για εργαλεία αυτοματοποιημένων διαδικασιών ανάπτυξης μεταγλωττιστών. Στο βιβλίο ορίζεται μία εκπαιδευτική γλώσσα προγραμματισμού για την οποία υλοποιείται ένας πλήρως λειτουργικός μεταγλωττιστής, ο οποίος δέχεται ως είσοδο προγράμματα συνταγμένα στη γλώσσα αυτή και παράγει τον αντίστοιχο κώδικα σε γλώσσα μηχανής. Πρόκειται για μια γλώσσα προγραμματισμού που αντλεί ιδέες και δομές από τη C, αλλά είναι πιο μικρή τόσο στις υποστηριζόμενες δομές, όσο και σε προγραμματιστικές δυνατότητες. Παρόλο που οι προγραμματιστικές της δυνατότητες είναι μικρές, η εκπαιδευτική αυτή γλώσσα προγραμματισμού περιέχει πλούσια στοιχεία και η κατασκευή του μεταγλωττιστή της έχει να παρουσιάσει αρκετό ενδιαφέρον, αφού περιέχονται σε αυτήν πολλές εντολές που χρησιμοποιούνται από γνωστές γλώσσες προγραμματισμού, όπως είναι οι δημοφιλείς while και if-else, καθώς και κάποιες πρωτότυπες. Υποστηρίζει συναρτήσεις και διαδικασίες, μετάδοση παραμέτρων με αναφορά και τιμή, αναδρομικές κλήσεις, ενώ επιτρέπει φώλιασμα στη δήλωση συναρτήσεων και διαδικασιών. |
format |
1 |
author |
Μανής, Γεώργιος Manis, George |
author_facet |
Μανής, Γεώργιος Manis, George |
author_sort |
Μανής, Γεώργιος |
title |
Εγχειρίδιο Σχεδίασης και Ανάπτυξης Μεταγλωττιστών |
title_short |
Εγχειρίδιο Σχεδίασης και Ανάπτυξης Μεταγλωττιστών |
title_full |
Εγχειρίδιο Σχεδίασης και Ανάπτυξης Μεταγλωττιστών |
title_fullStr |
Εγχειρίδιο Σχεδίασης και Ανάπτυξης Μεταγλωττιστών |
title_full_unstemmed |
Εγχειρίδιο Σχεδίασης και Ανάπτυξης Μεταγλωττιστών |
title_sort |
εγχειρίδιο σχεδίασης και ανάπτυξης μεταγλωττιστών |
publishDate |
2023 |
url |
http://dx.doi.org/10.57713/kallipos-372 http://repository.kallipos.gr/handle/11419/11371 |
work_keys_str_mv |
AT manēsgeōrgios encheiridioschediasēskaianaptyxēsmetaglōttistōn AT manisgeorge encheiridioschediasēskaianaptyxēsmetaglōttistōn AT manēsgeōrgios handbookoncompilerdesignanddevelopment AT manisgeorge handbookoncompilerdesignanddevelopment |
_version_ |
1799946613953658880 |