Εγχειρίδιο Σχεδίασης και Ανάπτυξης Μεταγλωττιστών

Σκοπός του παρόντος συγγράμματος είναι η εισαγωγή του αναγνώστη στην επιστήμη των μεταγλωττιστών. Η προσέγγιση που επιλέγεται είναι αυτή της καθοδήγησης της γνώσης μέσα από τη διαδικασία ανάπτυξης. Σε αντίθεση με άλλα βιβλία που είναι διαθέσιμα στα ελληνικά και στα οποία δίνεται το βάρος στο θεωρητι...

Πλήρης περιγραφή

Λεπτομέρειες βιβλιογραφικής εγγραφής
Κύριοι συγγραφείς: Μανής, Γεώργιος, Manis, George
Μορφή: 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