[aspectc-user] Compiler Release: AspectC for Aspect-oriented Programming with C

Michael Gong mwgong at cs.utoronto.ca
Fri Oct 27 03:15:46 CEST 2006

Hi, all,

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:

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 http://www.AspectC.net .

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

Feedback and suggestions are welcome.

AspectC Compiler Development Team (http://www.AspectC.net)
Middleware Systems Research Group
University of Toronto

Michael Gong and Hans-Arno Jacobsen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.aspectc.org/pipermail/aspectc-user/attachments/20061026/1f214abf/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Michael Gong.vcf
Type: text/x-vcard
Size: 189 bytes
Desc: not available
URL: <http://www.aspectc.org/pipermail/aspectc-user/attachments/20061026/1f214abf/attachment.vcf>

More information about the aspectc-user mailing list