|
C-Breeze is an infrastructure for building C
compilers. It is written in C++, and consists of a set of
classes for representing a C program as an abstract syntax tree
(AST). It includes many support classes for inspecting,
manipulating, and analyzing the program in the AST form. We
also provide a front end that parses C code (ANSI/ISO 9899-1990
standard) and generates the initial AST.
|
The overall process of building a C-Breeze compiler is as follows:
- Download and upack the C-Breeze source.
- Fix the Makefile.inc to reflect your local configuration.
- Compile the classes to produce libc-breeze.a
- Define one or more new compiler Phases.
- Compile your new Phases and link against libc-breeze.a to produce an executable.
|
|
The C-Breeze code itself is quite
portable, but the C compilers built using C-Breeze can
only compile C89 code. Therefore, C-Breeze compilers must
have a C89-compliant preprocessor and C89-friendly system
header files. We have found that the following
configuration works well:
- Compile the C-Breeze classes using g++ 3.x
- Provide gcc 2.95.x (and accompanying header files)
for your C-Breeze compiler to use as the
preprocessor.
|
|
If you incorporate C-Breeze into your
research, please let us know -- and please use the
following citation in your publications:
The C-Breeze Compiler Infrastructure
Calvin Lin, Samuel Z. Guyer, Daniel Jimenez
TR-01-43, The University of Texas at Austin, November, 2001.
|
|