AAU Student Projects - visit Aalborg University's student projects portal
A master's thesis from Aalborg University
Book cover


Creating CLARA - The Cross-Language Reusable Aspect-language

Authors

; ;

Term

4. term

Education

Publication year

2007

Abstract

Rapporten præsenterer design og implementering af et programmeringssprog, der bringer aspektorienteret programmering (AOP) på tværs af flere objektorienterede målsprog. I AOP definerer udviklere aspekter, som er genbrugelige enheder af adfærd, der går på tværs af mange dele af et program, og en væver indsætter dem automatisk der, hvor de skal bruges. Vores tilgang bygger på en generaliseret model af objektorienteret programmering og en analyse af centrale AOP-funktioner. For at muliggøre brug på tværs af sprog baserer vi vores pointcut-sprog på JTL, der anvender logisk metaprogrammering til at angive, hvor aspekter gælder, og vi definerer et generisk advice-sprog til at beskrive, hvad der skal køre disse steder. Vi demonstrerer sproget med to aspekt-eksempler anvendt på simple Java- og C#-programmer. Vi konkluderer, at det er muligt at skabe et tværsprogligt AOP-sprog, men at flere funktioner kræver yderligere udvikling og analyse.

This report presents the design and implementation of a programming language that brings aspect-oriented programming (AOP) across several object-oriented target languages. In AOP, developers define aspects—reusable units of behavior that cut across many parts of a program—and a weaver inserts them automatically where needed. Our approach is grounded in a generalized model of object-oriented programming and an analysis of core AOP features. To enable cross-language use, our pointcut language builds on JTL, which uses logic meta-programming to declare where aspects apply, and we define a generic advice language to describe what should run at those points. We demonstrate the language with two aspect examples applied to simple Java and C# programs. We conclude that creating a cross-language AOP language is feasible, but several features require further development and analysis.

[This abstract was generated with the help of AI]