Your browser does not support JavaScript!

Αρχική    Integrated metaprogramming systems : language, tools and practices  

Αποτελέσματα - Λεπτομέρειες

Προσθήκη στο καλάθι
[Προσθήκη στο καλάθι]
Κωδικός Πόρου 000382647
Τίτλος Integrated metaprogramming systems : language, tools and practices
Άλλος τίτλος Ολοκληρωμένα συστήματα μεταπρογραμματισμού: γλώσσα, εργαλεία και πρακτικές
Συγγραφέας Λίλης, Ιωάννης
Σύμβουλος διατριβής Σαββίδης, Αντώνης
Μέλος κριτικής επιτροπής Μαρκάτος, Ευάγγελος
Πλεξουσάκης, Δημήτρης
Αυγερίου, Πάρης
Σμαραγδάκης, Ιωάννης
Περίληψη Metaprogramming is an advanced language feature enabling to mix programs with definitions that generate source code to be put in their place. Such definitions are called metaprograms and are executed during the translation of the main program. While metaprograms are essentially programs they are mostly treated as special cases without sharing the current programming practices and development tools. In this context, we emphasize the need for a methodological integration between metaprograms and normal programs presenting a systematic proposition towards integrated metaprogramming systems. We cover and implement aspects related to language, programming model, tool support and deployment practices. We identify a set of primary requirements related to language implementation, metaprogramming features, software engineering support, and programming environments, that are necessary to achieve such integration and elaborate on addressing them in the implementation of a metaprogramming system. In particular, we introduce the notion of integrated metaprograms, as coherent programs assembled from specific meta-code fragments present in the source code. We prove the expressiveness of this programming model and illustrate its software engineering advantages through case studies that reflect demanding scenarios of exception handling, design patterns and design by contract. Then we present an integrated tool-chain that treats metaprograms as first-class citizens of the programming environment, incorporating them into the workspace management and supporting them with a full-scale build process. We also elaborate on the way we provide precise compile-error reporting and full-power source-level debugging facilities for metaprograms. Regarding model integration, we show how Aspect-Oriented Programming (AOP), a paradigm originally considered only for normal programs, is effectively extended and applied in a metaprogramming context. In particular, we present a systematic proposition for introducing aspect orientation in the entire processing pipeline of a metaprogramming system. Additionally, we discuss an implementation approach treating aspects as batches of transformation metaprograms, the latter deploying a custom AOP-related library we offer. Example scenarios are discussed demonstrating how the proposed aspect system is used in practice, while we present how full-scale source-level aspect debugging is facilitated during the program compilation process. Finally, we propose deployment practices that utilize metaprogramming to achieve reusability at a macroscopic scale. In this direction, we present a methodology for implementing reusable design patterns and exception handling templates by realizing them as metaprogram libraries that can be deployed on demand. We also discuss an improved Model-Driven Engineering (MDE) practice where the outcomes of MDE-tools become read-only Abstract Syntax Trees (ASTs) instead of source code to resolve the inherent maintenance issues in such tools. In our approach the application source code involves metaprogramming to deploy and manipulate the generated code fragments as ASTs, instead of being built around the generated code with custom modifications and extensions.
Φυσική περιγραφή 208 φύλλα : χάρτ., πίν., έγχ. εικ. ; 30 εκ.
Γλώσσα Αγγλικά
Θέμα Aspect-oriented programming
Integrated development environments
Model-driven engineering
Programming languages
Software engineering
Software reuse
Γλώσσες προγραμματισμού
Ολοκληρωμένα περιβάλλοντα προγραμματισμού
Τεχνολογία λογισμικού
Ημερομηνία έκδοσης 2014-01-28
Συλλογή   Σχολή/Τμήμα--Σχολή Θετικών και Τεχνολογικών Επιστημών--Τμήμα Επιστήμης Υπολογιστών--Διδακτορικές διατριβές
  Τύπος Εργασίας--Διδακτορικές διατριβές
Εμφανίσεις 618

Ψηφιακά τεκμήρια
No preview available

Κατέβασμα Εγγράφου
Προβολή Εγγράφου
Εμφανίσεις : 25