Welcome to the AspectC Corner of the Web
About the Project
About the Compiler
Download AspectC V0.4
- encapsulate non-modularized concerns in systems;
- often include security policies, transaction
support, synchronization concerns, etc.;
- are present in middleware systems
- enable model-driven development
- have been used for developing embedded software system
- an aspect-oriented extension to C and aspect-oriented software development for C;
- full ANSI-C compliance and gcc source-compatibility;
- compiler and generated code portability;
- seamless Linux, Solaris and Windows support;
- simple integration in existing builds and code transparency through
- an open source license and compiler.
- modularization of crosscutting concerns for C-based software;
- research on concern separation tailored to C and imperative programming;
- research on aspect-orientation on C-based systems;
- development of highly customizable and easily configurable software in C;
- development of feature-rich software product lines in C.
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.
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
Please browse the current and planned
AspectC language features,
AspectC code snippets,
language specification and other documentation, and
As well we encourage you to download the code, and
contact us about any questions you may have.
- concern separation support and aspect-oriented language
features tailored to the C language and the imperative style of
- 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.);
- 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
A first version of the AspectC compiler has been built and is available for download. The compilation
process is illustrated in the following figure.