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

Aspect-oriented programming (AOP) lets developers define reusable 'aspects'—modules that capture behavior used across many parts of a program—and automatically integrate them into code, a process known as weaving. This thesis presents the design and implementation of a cross-language AOP language that can insert such aspects into programs written in several object-oriented programming (OOP) languages. Our language is built on a generalized model of OOP, and its pointcut language—the way we describe where an aspect should apply—draws on JTL, a logic meta-programming approach. We also define a generic advice language, which specifies what code runs when a pointcut matches. We demonstrate the approach with two aspect examples on simple Java and C# programs. Our results show that a cross-language AOP language is plausible, while highlighting features that need further development and analysis.

Aspektorienteret programmering (AOP) gør det muligt at definere genbrugelige 'aspekter'—moduler der samler adfærd, som bruges flere steder i et program—og automatisk flette dem ind i koden (vævning). Denne rapport beskriver design og implementering af et AOP-sprog på tværs af sprog, som kan indsætte sådanne aspekter i programmer skrevet i flere objektorienterede programmeringssprog (OOP). Sproget bygger på en generaliseret OOP-model, og vores pointcut-sprog—måden vi angiver hvor et aspekt skal gælde—er baseret på JTL, en logisk meta-programmeringstilgang. Vi definerer også et generisk advice-sprog, som beskriver hvilken kode der køres, når et pointcut matcher. Vi demonstrerer sproget med to aspekt-eksempler på simple Java- og C#-programmer. Resultaterne viser, at et AOP-sprog på tværs af sprog er plausibelt, men at flere funktioner kræver yderligere arbejde og analyse.

[This apstract has been rewritten with the help of AI based on the project's original abstract]