next up previous
Next: What is C-Breeze not? Up: Overview Previous: Overview

What is C-Breeze?

C-Breeze is a system that allows the user to analyze ANSI C programs (i.e., programs conforming to the ISO9899 standard for the C language) within the context of his or her own C++ program. C-Breeze parses a C program into an abstract syntax tree (AST) that the user may traverse or modify. C-Breeze can also unparse the syntax tree and produce another C program as output. One of the main uses of C-Breeze is to read in a C program, perform some transformations on it, then write the transformed program to an output file that can then be compiled by a C compiler.

C-Breeze is a C++ library that can be compiled to an executable called cbz (i.e., it has a main function). To use it, you write your own C++ code that extends the functionality of C-Breeze. For instance, suppose you are interested in implementing a particular optimization such as loop unrolling. You can write a phase that transforms the AST by unrolling loops. Your phase can be invoked by specifying a flag on the cbz command line. The output of C-Breeze will be the program with your transformations performed on it.

C-Breeze contains a powerful dataflow analysis framework that makes it easy to implement a wide variety of dataflow analyses by defining a few key components.

C-Breeze is written in a style that takes advantage of C++ features making it very easy to use, as we will see.


next up previous
Next: What is C-Breeze not? Up: Overview Previous: Overview
Calvin Lin
2002-01-31