Welcome to the AspectC Corner of the Web

[ News ] [ About the Project ] [ About the Compiler ] [ Gallery ]


Download AspectC V0.4 (01/07)


Aspects
  1. encapsulate non-modularized concerns in systems;
  2. often include security policies, transaction support, synchronization concerns, etc.;
  3. are present in middleware systems [ZJ04], [ZJ03], [ZJ03] and databases [GJ05];
  4. enable model-driven development [ZJ05a];
  5. have been used for developing embedded software system product lines [ZJ05b].
AspectC offers
  1. an aspect-oriented extension to C and aspect-oriented software development for C;
  2. full 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 on C-based systems;
  4. development of highly customizable and easily configurable software in C;
  5. development of feature-rich software product lines in C.

News

January 03, 2007 AspectC Version 0.4 is released. [release note]
January 03, 2007 A bugzilla is created for AspectC project.
December 24th, 2006 Both demo and tutorial submissions from AspectC team are accepted by AOSD 2007.
demo :"AspectC for Aspect-oriented Systems Development with C".
tutorial : "Principles of Aspect-oriented Systems Development and Refactoring with AspectC".
October 17th, 2006 AspectC Version 0.3 is released.
October 16th, 2006 AspectC slides on CASCON 2006.
September 25th, 2006 Lecture notes for AOP and AspectC.
September 8th, 2006 AspectC Version 0.2 is released.
September 2nd, 2006 A mailing list becomes available to disseminate AspectC news. To subscribe, click.
July 31st, 2006 The Friends-and-Family release for the patient developer goes live. First public release of AspectC Version 0.1.

About the Project

AspectC is a research project conducted by the Middleware Systems Research Group at the University of Toronto. AspectC enables aspect-oriented software development with the C programming language. AspectC consists of a compiler that translates code written in AspectC into ANSI-C code. This code can be compiled by any ANSI-C compliant compiler, like for example gcc.

The short-term objective of the AspectC project is to build a robust compiler to support aspect-oriented programming with C. AspectC achieves this by building on proven aspect-oriented language designs for other languages, most notably the AspectJ language for aspect-oriented programming with Java.

Long-term research objectives of the AspectC project include the investigation of
  1. concern separation support and aspect-oriented language features tailored to the C language and the imperative style of programming;
  2. aspect-orientation in the context of software written in C, especially systems software and middleware systems targeting embedded platforms (e.g., cell phones, PDAs, chip cards, sensor boards, telecommunications equipment, etc.);
  3. techniques and tools for the development of highly customizable and easily configurable systems and middleware systems software product lines catering to the extensive world of C-based legacy systems.
Please browse the current and planned AspectC language features, AspectC code snippets, language specification and other documentation, and project status. As well we encourage you to download the code, and contact us about any questions you may have.


About the AspectC Compiler

A first version of the AspectC compiler has been built and is available for download. The compilation process is illustrated in the following figure.


Gallery