Creating CLARA - The Cross-Language Reusable Aspect-language
Authors
Jørgensen, Brian G. ; Pedersen, Eckhart T. K. ; Norstved, Tinus
Term
4. term
Education
Publication year
2007
Abstract
Denne afhandling præsenterer et sprog til aspektorienteret programmering (AOP), der kan bruges på tværs af flere objektorienterede sprog. Sproget gør det muligt at skrive genbrugelige “aspekter” — moduler med adfærd, der går på tværs af mange dele af et program — og automatisk flette dem ind i eksisterende kode (kaldet weaving) i forskellige målsprog. Vores design bygger på en generaliseret model af objektorienteret programmering og en gennemgang af centrale AOP-funktioner. For at opnå sproguafhængighed baserer vi vores pointcut-sprog — den måde man beskriver, hvor et aspekt skal anvendes — på JTL, en logikbaseret meta-programmeringstilgang, og vi udvikler et generisk advice-sprog, som beskriver, hvad der skal ske, når et pointcut matcher. Vi demonstrerer sproget med to aspekt-eksempler anvendt på simple Java- og C#-programmer. Vi konkluderer, at et AOP-sprog på tværs af sprog er realistisk, men at flere funktioner kræver yderligere udvikling og analyse.
This thesis presents a language for aspect-oriented programming (AOP) that works across multiple object-oriented languages. It lets developers define reusable “aspects”—modules whose behavior cuts across many parts of a program—and automatically weave them into existing code in different target languages. Our design is grounded in a generalized model of object-oriented programming and a review of key AOP features. To enable cross-language use, our pointcut language—how to describe where an aspect should apply—is based on JTL, a logic-based meta-programming approach, and we introduce a generic advice language that specifies what should happen when a pointcut matches. We demonstrate the language with two aspect examples applied to simple Java and C# programs. We conclude that a cross-language AOP language is feasible, but several features still require further development and analysis.
[This abstract was generated with the help of AI]
Documents
