Your browser does not support JavaScript!

Home    Integrated metaprogramming systems : language, tools and practices  

Results - Details

Add to Basket
[Add to Basket]
Identifier 000382647
Title Integrated metaprogramming systems : language, tools and practices
Alternative Title Ολοκληρωμένα συστήματα μεταπρογραμματισμού: γλώσσα, εργαλεία και πρακτικές
Author Λίλης, Ιωάννης
Thesis advisor Σαββίδης, Αντώνης
Reviewer Μαρκάτος, Ευάγγελος
Πλεξουσάκης, Δημήτρης
Αυγερίου, Πάρης
Σμαραγδάκης, Ιωάννης
Abstract Ο μεταπρογραμματισμός είναι ένα προηγμένο χαρακτηριστικό γλωσσών που επιτρέπει στα προγράμματα να αναμιγνύονται με ορισμούς που παράγουν κώδικα για να μπει στη θέση τους. Αυτοί οι ορισμοί ονομάζονται μεταπρογράμματα και εκτελούνται κατά τη διάρκεια της μετάφρασης του κυρίως προγράμματος. Παρότι τα μεταπρογράμματα είναι ουσιαστικά προγράμματα, συχνά αντιμετωπίζονται ως ειδικές περιπτώσεις, χωρίς να μοιράζονται τις τρέχουσες προγραμματιστικές πρακτικές και τα εργαλεία ανάπτυξης. Σε αυτό το πλαίσιο, τονίζουμε την ανάγκη της μεθοδολογικής ενοποίησης των μεταπρογραμμάτων και των κανονικών προγραμμάτων μέσω μιας συστηματικής πρότασης για ολοκληρωμένα συστήματα μεταπρογραμματισμού. Ειδικότερα, καλύπτουμε και υλοποιούμε πτυχές της γλώσσας, του μοντέλου προγραμματισμού, της υποστήριξης εργαλείων και των πρακτικών ανάπτυξης. Εντοπίζουμε ένα σύνολο βασικών απαιτήσεων που σχετίζονται με την υλοποίηση της γλώσσα, τα χαρακτηριστικά του μεταπρογραμματισμού, την υποστήριξη της παραγωγής λογισμικού, και τα περιβάλλοντα προγραμματισμού, οι οποίες είναι απαραίτητες για την επίτευξη αυτής της ενοποίησης και παρέχουμε λεπτομέρειες για την αντιμετώπισή τους στην υλοποίηση ενός συστήματος μεταπρογραμματισμού. Ειδικότερα, εισάγουμε την έννοια των ενοποιημένων μεταπρογραμμάτων, ως συνεκτικά προγράμματα που συναρμολογούνται από συγκεκριμένα τμήματα μετακώδικα που βρίσκονται μέσα στον πηγαίο κώδικα. Αποδεικνύουμε την εκφραστικότητα αυτού του προγραμματιστικού μοντέλου και παρουσιάζουμε τα πλεονεκτήματα του ως προς την ανάπτυξη λογισμικού μέσω παραδειγμάτων που αντικατοπτρίζουν απαιτητικά σενάρια σχετικά με χειρισμό εξαιρέσεων, σχεδιαστικά πρότυπα και σχεδίαση βασισμένη σε συμβόλαια. Στη συνέχεια, παρουσιάζουμε μια ολοκληρωμένη σειρά εργαλείων που αντιμετωπίζουν τα μεταπρογράμματα ως βασικές οντότητες ενός περιβάλλοντος προγραμματισμού, ενσωματώνοντάς τα στη διαχείριση του χώρου εργασίας και υποστηρίζοντάς τα με μια διαδικασία μεταγλώττισης πλήρους κλίμακας. Επίσης αναλύουμε τον τρόπο με τον οποίο παρέχουμε ακριβείς αναφορές για λάθη μεταγλώττισης καθώς και πλήρως λειτουργική εκσφαλμάτωση πηγαίου κώδικα για μεταπρογράμματα. Σχετικά με την ενοποίηση του μοντέλου, δείχνουμε πώς ο προγραμματισμός βασισμένος σε προοπτικές (Aspect-Oriented Programming), ένα προγραμματιστικό παράδειγμα που αρχικά υφίσταντο μόνο για κανονικά προγράμματα, μπορεί να επεκταθεί και να εφαρμοστεί στο πλαίσιο του μεταπρογραμματισμού. Συγκεκριμένα, παρουσιάζουμε μια συστηματική πρόταση για την εισαγωγή προοπτικών σε όλα τα στάδια της διαδικασίας μεταγλώττισης σε ένα συστήματα μεταπρογραμματισμού. Επιπρόσθετα, αναλύουμε μια μέθοδο υλοποίησης που εφαρμόζει τις προοπτικές ως παρτίδες μετασχηματιστικών μεταπρογραμμάτων, τα οποία χρησιμοποιούν μια ειδική βιβλιοθήκη για προοπτικές την οποία παρέχουμε. Συζητάμε πρακτικά σενάρια χρήσης για την προτεινόμενη πρακτική προοπτικών, ενώ παρουσιάζουμε τον τρόπο με τον οποίο η πλήρους κλίμακας εκσφαλμάτωση των προοπτικών σε επίπεδο πηγαίου κώδικα μπορεί να υποστηριχθεί κατά τη διάρκεια της μεταγλώττισης. Τέλος, προτείνουμε πρακτικές που χρησιμοποιούν μεταπρογραμματισμό για την επίτευξη επαναχρησιμοποίησης σε μακροσκοπική κλίμακα. Σε αυτή την κατεύθυνση, παρουσιάζουμε μια μεθοδολογία για την υλοποίηση επαναχρησιμοποιήσιμων σχεδιαστικών προτύπων και καλουπιών χειρισμού εξαιρέσεων, πραγματοποιώντας τα ως βιβλιοθήκες μεταπρογραμματισμού που μπορούν να χρησιμοποιηθούν κατά περίσταση. Επιπλέον, περιγράφουμε μια βελτιωμένη πρακτική για την ανάπτυξη λογισμικού που βασίζεται σε μοντέλα (Model-Driven Engineering) όπου οι έξοδοι των εργαλείων μοντελοποίησης μετατρέπονται σε αφαιρετικά συντακτικά δέντρα (ASTs) που είναι μόνο για ανάγνωση αντί για πηγαίο κώδικα, στοχεύοντας στην επίλυση των εγγενών προβλημάτων συντήρησης αυτών των εργαλείων. Στην προσέγγισή μας, ο πηγαίος κώδικας της εφαρμογής χρησιμοποιεί μεταπρογραμματισμό για να δημιουργήσει και να διαχειριστεί τα παραγόμενα τμήματα κώδικα ως αφαιρετικά συντακτικά δέντρα, αντί να χτίζεται πάνω στον παραγόμενο κώδικα με διάφορες τροποποιήσεις και επεκτάσεις.
Language English
Subject Aspect-oriented programming
Integrated development environments
Model-driven engineering
Programming languages
Software engineering
Software reuse
Γλώσσες προγραμματισμού
Ολοκληρωμένα περιβάλλοντα προγραμματισμού
Τεχνολογία λογισμικού
Issue date 2014-01-28
Collection   School/Department--School of Sciences and Engineering--Department of Computer Science--Doctoral theses
  Type of Work--Doctoral theses
Views 624

Digital Documents
No preview available

Download document
View document
Views : 25