Matches in SemOpenAlex for { <https://semopenalex.org/work/W2106579150> ?p ?o ?g. }
- W2106579150 endingPage "30" @default.
- W2106579150 startingPage "21" @default.
- W2106579150 abstract "Compilers for modern object-oriented programming languages generate code in a platform independent intermediate language preserving the concepts of the source language; for example, classes, fields, methods, and virtual or static dispatch can be directly identified within the intermediate code. To execute this intermediate code, state-of-the-art implementations of virtual machines perform just-in-time (JIT) compilation of the intermediate language; i.e., the virtual instructions in the intermediate code are compiled to native machine code at runtime. In this step, a declarative representation of source language concepts in the intermediate language facilitates highly efficient adaptive and speculative optimization of the running program which may not be possible otherwise. In contrast, constructs of aspect-oriented languages - which improve the separation of concerns - are commonly realized by compiling them to conventional intermediate language instructions or by driving transformations of the intermediate code, which is called weaving. This way the aspect-oriented constructs' semantics is not preserved in a declarative manner at the intermediate language level. This representational gap between aspect-oriented concepts in the source code and in the intermediate code hinders high performance optimizations and weakens features of software engineering processes like debugging support or the continuity property of incremental compilation: modifying an aspect in the source code potentially requires re-weaving multiple other modules. To leverage language implementation techniques for aspect-oriented languages, this thesis proposes the Aspect-Language Implementation Architecture (ALIA) which prescribes - amongst others - the existence of an intermediate representation preserving the aspect-oriented constructs of the source program. A central component of this architecture is an extensible and flexible meta-model of aspect-oriented concepts which acts as an interface between front-ends (usually a compiler) and back-ends (usually a virtual machine) of aspect-oriented language implementations. The architecture and the meta-model are embodied for Java-based aspect-oriented languages in the Framework for Implementing Aspect Languages (FIAL) respectively the Language-Independent Aspect Meta-Model (LIAM) which is part of the framework. FIAL generically implements the work flows required from an execution environment when executing aspects provided in terms of LIAM. In addition to the first-class intermediate representation of aspect-oriented concepts, ALIA - and the FIAL framework as its incarnation - treat the points of interaction between aspects and other modules - so-called join points - as being late-bound to an implementation. In analogy to the object-oriented terminology for late-bound methods, the join points are called virtual in ALIA. Together, the first-class representation of aspect-oriented concepts in the intermediate representation as well as treating join points as being virtual facilitate the implementation of new and effective optimizations for aspect-oriented programs. Three different instantiations of the FIAL framework are presented in this thesis, showcasing the feasibility of integrating language back-ends with different characteristics with the framework. One integration supports static aspect deployment and produces results similar to conventional aspect weavers; the woven code is executable on any standard Java virtual machine. Two instantiations are fully dynamic, where one is realized as a portable plug-in for standard Java virtual machines and the other one, called Steamloom^ALIA , is realized as a deep integration into a specific virtual machine, the Jikes Research Virtual Machine Alpern2005. While the latter instantiation is not portable, it exhibits an outstanding performance. Virtual join point dispatch is a generalization of virtual method dispatch. Thus, well established and elaborate optimization techniques from the field of virtual method dispatch are re-used with slight adaptations in Steamloom^ALIA . These optimizations for aspect-oriented concepts go beyond the generation of optimal bytecode. Especially strikingly, the power of such optimizations is shown in this thesis by the examples of the cflow dynamic property, which may be necessary to evaluate during virtual join point dispatch, and dynamic aspect deployment - i.e., the selective modification of specific join points' dispatch. In order to evaluate the optimization techniques developed in this thesis, a means for benchmarking has been developed in terms of macro-benchmarks; i.e., real-world applications are executed. These benchmarks show that for both concepts the implementation presented here is at least circa twice as fast as state-of-the-art implementations performing static optimizations of the generated bytecode; in many cases this thesis's optimizations even reach a speed-up of two orders of magnitude for the cflow implementation and even four orders of magnitude for the dynamic deployment. The intermediate representation in terms of LIAM models is general enough to express the constructs of multiple aspect-oriented languages. Therefore, optimizations of features common to different languages are available to applications written in all of them. To proof that the abstractions provided by LIAM are sufficient to act as intermediate language for multiple aspect-oriented source languages, an automated translation from source code to LIAM models has been realized for three very different and popular aspect-oriented languages: AspectJ, JAsCo and Compose*. In addition, the feasibility of translating from CaesarJ to LIAM models is shown by discussion. The use of an extensible meta-model as intermediate representation furthermore simplifies the definition of new aspect-oriented language concepts as is shown in terms of a tutorial-style example of designing a domain specific extension to the Java language in this thesis." @default.
- W2106579150 created "2016-06-24" @default.
- W2106579150 creator A5016198643 @default.
- W2106579150 date "2008-07-01" @default.
- W2106579150 modified "2023-09-23" @default.
- W2106579150 title "An Efficient and Flexible Implementation of Aspect-Oriented Languages" @default.
- W2106579150 cites W1479768891 @default.
- W2106579150 cites W1484352283 @default.
- W2106579150 cites W1501829296 @default.
- W2106579150 cites W1535115748 @default.
- W2106579150 cites W1560840983 @default.
- W2106579150 cites W1579278367 @default.
- W2106579150 cites W1598886868 @default.
- W2106579150 cites W1608143967 @default.
- W2106579150 cites W1610570299 @default.
- W2106579150 cites W1812582761 @default.
- W2106579150 cites W1838409627 @default.
- W2106579150 cites W1965418329 @default.
- W2106579150 cites W1970462831 @default.
- W2106579150 cites W1970558557 @default.
- W2106579150 cites W2000050212 @default.
- W2106579150 cites W2020782492 @default.
- W2106579150 cites W2021875003 @default.
- W2106579150 cites W2028124543 @default.
- W2106579150 cites W2035731741 @default.
- W2106579150 cites W2035992018 @default.
- W2106579150 cites W2043433970 @default.
- W2106579150 cites W2050362115 @default.
- W2106579150 cites W2055970549 @default.
- W2106579150 cites W2058367869 @default.
- W2106579150 cites W2061180491 @default.
- W2106579150 cites W2079777989 @default.
- W2106579150 cites W2080267935 @default.
- W2106579150 cites W2088018252 @default.
- W2106579150 cites W2091071969 @default.
- W2106579150 cites W2111141292 @default.
- W2106579150 cites W2136033258 @default.
- W2106579150 cites W2143588523 @default.
- W2106579150 cites W2146766856 @default.
- W2106579150 cites W2158189533 @default.
- W2106579150 cites W2159558457 @default.
- W2106579150 cites W2168536733 @default.
- W2106579150 cites W2170136170 @default.
- W2106579150 cites W2293227920 @default.
- W2106579150 cites W2622427009 @default.
- W2106579150 cites W26966122 @default.
- W2106579150 cites W2908205479 @default.
- W2106579150 cites W3129137950 @default.
- W2106579150 cites W59725500 @default.
- W2106579150 cites W956539890 @default.
- W2106579150 cites W2510569334 @default.
- W2106579150 cites W2926788130 @default.
- W2106579150 cites W98897531 @default.
- W2106579150 hasPublicationYear "2008" @default.
- W2106579150 type Work @default.
- W2106579150 sameAs 2106579150 @default.
- W2106579150 citedByCount "7" @default.
- W2106579150 countsByYear W21065791502012 @default.
- W2106579150 crossrefType "dissertation" @default.
- W2106579150 hasAuthorship W2106579150A5016198643 @default.
- W2106579150 hasConcept C169590947 @default.
- W2106579150 hasConcept C199360897 @default.
- W2106579150 hasConcept C2777904410 @default.
- W2106579150 hasConcept C41008148 @default.
- W2106579150 hasConcept C43126263 @default.
- W2106579150 hasConcept C48859967 @default.
- W2106579150 hasConcept C60051680 @default.
- W2106579150 hasConcept C77660490 @default.
- W2106579150 hasConceptScore W2106579150C169590947 @default.
- W2106579150 hasConceptScore W2106579150C199360897 @default.
- W2106579150 hasConceptScore W2106579150C2777904410 @default.
- W2106579150 hasConceptScore W2106579150C41008148 @default.
- W2106579150 hasConceptScore W2106579150C43126263 @default.
- W2106579150 hasConceptScore W2106579150C48859967 @default.
- W2106579150 hasConceptScore W2106579150C60051680 @default.
- W2106579150 hasConceptScore W2106579150C77660490 @default.
- W2106579150 hasLocation W21065791501 @default.
- W2106579150 hasOpenAccess W2106579150 @default.
- W2106579150 hasPrimaryLocation W21065791501 @default.
- W2106579150 hasRelatedWork W1488432038 @default.
- W2106579150 hasRelatedWork W1513136098 @default.
- W2106579150 hasRelatedWork W1527793496 @default.
- W2106579150 hasRelatedWork W1544937302 @default.
- W2106579150 hasRelatedWork W1551995862 @default.
- W2106579150 hasRelatedWork W1586902756 @default.
- W2106579150 hasRelatedWork W1591331624 @default.
- W2106579150 hasRelatedWork W1649645444 @default.
- W2106579150 hasRelatedWork W1770006921 @default.
- W2106579150 hasRelatedWork W2000090290 @default.
- W2106579150 hasRelatedWork W2039942147 @default.
- W2106579150 hasRelatedWork W2096190533 @default.
- W2106579150 hasRelatedWork W2097964082 @default.
- W2106579150 hasRelatedWork W2098884586 @default.
- W2106579150 hasRelatedWork W2115680394 @default.
- W2106579150 hasRelatedWork W2124734282 @default.
- W2106579150 hasRelatedWork W2132055297 @default.
- W2106579150 hasRelatedWork W2135951036 @default.
- W2106579150 hasRelatedWork W3169573634 @default.