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

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.

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.

[This abstract was generated with the help of AI]