This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Compiler Release: AspectC for Aspect-oriented Programming with C


Hi, gcc community,

This is to release AspectC, an aspect-oriented extension for C programming.
AspectC applies the concepts of aspect-oriented programming to the C programming language.


The AspectC compiler is available from: www.aspectc.net

AspectC offers:

1. an aspect-oriented extension to C and aspect-oriented software development for C
2. ANSI-C compliance and gcc source-compatibility
3. compiler and generated code portability
4. seamless Linux, Solaris and Windows support
5. simple integration in existing builds and code transparency through source-to-source transformations
6. an open source license and compiler.


AspectC enables:
1. modularization of crosscutting concerns for C-based software
2. research on concern separation tailored to C and imperative programming
3. research on aspect-orientation for C-based systems
4. development of highly customizable and easily configurable software in C
5. development of feature-rich software product lines in C.


AspectC is battle proven on about 80 3rd year undergraduate students at the University of Toronto taking an introductory operating systems course.
Course assignments are linked form the AspectC.net web site.


The main features supported by the AspectC Compiler include:
1. function call and execution join points
2. before, after and around advice
3. call(), execution(), args(), cflow(), infile(), infunc(), result() pointcuts
4. args() to expose the address of an argument
5. &&, ||, ! operators for composite pointcut definitions
6. named pointcut definitions
7. proceed() call
8. wildcard character matching in pointcut declarations
9. support for call join points of functions only having declarations, without definitions
10. recognition of the following extended gcc keywords:
__extension__, __const, __attribute__,
__builtin_va_list,__restrict, __inline, __inline__,
__alignof__, __asm, asm
11. thread-safe code for cflow() support
12. static crosscutting support: through intype() pointcut and introduce() advice to add a new member to a struct/union type
13. reflective information at join points


AspectC is open-source and can be downloaded from www.aspectc.net.

The AspectC website also includes tutorials, examples, manuals, etc.


Feedback and suggestions are welcome.



AspectC Compiler Development Team (www.aspectc.net) Middleware Systems Research Group University of Toronto Canada

Michael Gong and Hans-Arno Jacobsen


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]