Εμφάνιση απλής εγγραφής

dc.contributor.advisorΔημητρουλάκος, Γρηγόρης
dc.contributor.authorΚαρανικόλας, Χρήστος Α.
dc.date.accessioned2014-08-27T10:03:54Z
dc.date.available2014-08-27T10:03:54Z
dc.date.issued2014-05
dc.identifier.urihttp://amitos.library.uop.gr/xmlui/handle/123456789/2114
dc.descriptionΜ.Δ.Ε. 44el
dc.description.abstractΗ ανάπτυξη ενός μεταγλωττιστή είναι ένα δύσκολο πρόβλημα, η επιτυχής λύση του οποίου, καθορίζεται από την πληρότητα της ανάλυσης και της αρχιτεκτονικής σχεδίασης του υπό ανάπτυξη λογισμικού. Κατά τη διαδικασία της αρχιτεκτονικής σχεδίασης του λογισμικού, επιλέγονται κατάλληλα και δοκιμασμένα σχεδιαστικά πρότυπα, δηλαδή καλές σχεδιαστικές λύσεις οι οποίες έχουν αναπτυχθεί για την επίλυση γενικών συνήθως προβλημάτων και τείνουν να επαναχρησιμοποιούνται από τους Μηχανικούς Λογισμικού. Η παρούσα εργασία αποτελεί μια τεχνική περιγραφή για τη σχεδίαση, προσαρμογή, υλοποίηση και εφαρμογή συγκεκριμένων αντικειμενοστραφών σχεδιαστικών προτύπων σε μεταγλωττιστές, ως μία κάθετη προσέγγιση που εκκινεί από την μοντελοποιημένη αρχιτεκτονική σχεδίαση μέχρι και την ενδεικτική υλοποίηση κώδικα εφαρμογής τους. Παρουσιάζεται ένα ενδεικτικό μοντέλο της αρχιτεκτονικής σχεδίασης τμήματος ενός μεταγλωττιστή της γλώσσας C89, μέσω UML διαγραμμάτων κλάσεων, αντικειμένων και ακολουθίας. Χρησιμοποιούνται τα γνωστά αντικειμενοστραφή σχεδιαστικά πρότυπα Façade, Composite, Iterator και Visitor καθώς και προσαρμοσμένες στις ανάγκες του προβλήματος παραλλαγές τους. Η σχεδίαση επικεντρώνεται στην χρήση των συγκεκριμένων σχεδιαστικών προτύπων στον πίνακα συμβόλων, στο parse / abstract tree, στην three-address code αναπαράσταση και στις ενδεικτικές λειτουργίες scope checking, type inference & checking και graph generation. Ωστόσο το ίδιο μοντέλο σχεδίασης μπορεί να εφαρμοσθεί κατά περίπτωση για όλες τις Syntax Directed Definitions του Attribute Grammar Framework ενός μεταγλωττιστή. Παρουσιάζονται τμήματα κώδικα υλοποίησης σε C++ και παραδείγματα εφαρμογής iterator και visitor για pre order και post order διαπεράσεις σύνθετων δομών (parse / abstract trees, graphics IRs ως composites). Επίσης παρουσιάζεται μια προσαρμοσμένη σχεδίαση και υλοποίηση iterator και visitor για την μικτή pre post order διαπέραση composite δομών για την εφαρμογή L-Attributed Definitions. Ακόμη διερευνούνται τα μειονεκτήματα και πλεονεκτήματα έναντι του προτύπου Inheritance, καθώς και οι συνθήκες για την επιλογή κατάλληλων σχεδιαστικών προτύπων και προτείνονται σχεδιαστικές προσεγγίσεις για την επίλυση των προβλημάτων που αντιμετωπίσθηκαν κατά την εφαρμογή τους. Σκοπός της εργασίας δεν είναι η επί της ουσίας εξαντλητική ανάλυση, λύση και υλοποίηση των επιμέρους προβλημάτων και λειτουργιών (business logic) ενός μεταγλωττιστή, αλλά η εφαρμογή κατάλληλων σχεδιαστικών προτύπων που συνδράμουν θετικά στην υλοποίηση αυτών ή παρόμοιων λύσεων, ενισχύοντας παράλληλα τα ποιοτικά χαρακτηριστικά του παραγόμενου λογισμικού. Επίσης παρουσιάζεται μια ανάλυση των ποιοτικών χαρακτηριστικών των σχεδιαστικών προτύπων της υλοποίησης, καθώς και η συσχέτιση τους με μετρήσιμα ποιοτικά χαρακτηριστικά γνωστών προτύπων διασφάλισης ποιότητας λογισμικού. Τέλος η εργασία μπορεί να χρησιμοποιηθεί ως ένα κείμενο εναλλακτικής αναφοράς ή εκκίνησης για όσους επιθυμούν να ασχοληθούν με την κατανόηση και ανάπτυξη μεταγλωττιστών ή παρόμοιων προβλημάτων ή γενικά για την κατανόηση και εφαρμογή των γνωστών σχεδιαστικών προτύπων Façade, Composite, Iterator και Visitor.el
dc.format.extentσελ. 181el
dc.language.isoelel
dc.publisherΠανεπιστήμιο Πελοποννήσουel
dc.rightsΑναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα*
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/3.0/gr/*
dc.subjectΑντικειμενοστρεφείς προγραμματισμοί (Επιστήμη των υπολογιστών)el
dc.subjectΥπολογιστών λογισμικό -- Ανάπτυξηel
dc.subjectΗλεκτρονικοί υπολογιστές -- Προγράμματα (Μεταγλωττιστές)el
dc.titleΕφαρμογή σχεδιαστικών προτύπων (design patterns) αντικειμενοστραφούς προγραμματισμού σε μεταγλωττιστέςel
dc.typeΜεταπτυχιακή διπλωματική εργασίαel
dc.contributor.departmentΤμήμα Πληροφορικής και Τηλεπικοινωνιώνel
dc.contributor.facultyΣχολή Οικονομίας, Διοίκησης και Πληροφορικήςel
dc.contributor.masterΕπιστήμη και Τεχνολογία Υπολογιστώνel
dc.subject.keywordΜεταγλωττιστέςel
dc.description.abstracttranslatedThe development of a compiler is a hard task, whose successful solution is determined by the completeness of the analysis and the completeness of the architectural design of the software under development. During the process of the software architectural design, appropriate and tested design patterns, that is, satisfactory design solutions, which have been developed to resolve common problems and tend to be reused by the Software Engineers, are selected. This paper is a technical description for the design, adaptation, implementation and application of specific object oriented design patterns on compilers. It is a fast approach which starts with the architectural design model and concludes with the indicative implementation of their application code. An indicative architectural design model, for a section of a compiler of the C89 programing language is being presented, through UML class, object, and sequence diagrams. The common object oriented Façade, Composite, Iterator, and Visitor design patterns, as well as, their adapted to the specific problem variations are being used. The design process focuses on the use of the specific design patterns on the symbol table, the parse / abstract tree, the representation of three address code and the indicative functions of Scope checking, Type inference & checking and graph generation. However, the same design model can be implemented, on occasion, for all the Syntax Directed Definitions of the Attributed Grammar Framework of a compiler. Sections of the implementation code in C++ programing language and examples of the application of Iterator and Visitor patterns for pre order and post order iterations of compound structures (parse/abstract trees, graphics IRs, as composites) are being presented. Moreover, an adapted design and implementation of Iterator and Visitor patterns for the joint pre post order iteration on composite structures for the application of L-Attributed Definitions is being presented. Furthermore, the disadvantages and the advantages in contrast to the Inheritance pattern, as well as, the conditions of the selection of the appropriate design patterns are being researched by this paper. Also, design approaches for the resolution of the problems which were dealt with during the application of the design patterns are being suggested. The substantial exhaustive analysis, solution and implementation of the sub problems and functions (business logic) of a compiler, is not the main purpose of this paper. What it is though is the application of the appropriate design patterns, which positively contribute to the implementation of these or similar solutions, while enhancing the quality characteristics of the produced software. In addition, an analysis of the quality characteristics of the design patterns of the implementation, as well as, their correlation with countable quality characteristics of well-known standards of quality assurance software is being presented. Finally, this paper can be used as a text of an alternative reference or initiation for those wishing to be occupied with the comprehension and development of compilers or similar problems or generally the understanding and application of the well-known Façade, Composite, Iterator and Visitor design patterns.el


Αρχεία σε αυτό το τεκμήριο

Thumbnail
Thumbnail

Αυτό το τεκμήριο εμφανίζεται στις ακόλουθες συλλογές

Εμφάνιση απλής εγγραφής

Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα
Εκτός από όπου επισημαίνεται κάτι διαφορετικό, το τεκμήριο διανέμεται με την ακόλουθη άδεια:
Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα