Back to home page of Munawar
OpenRefactory/C: A Program Transformation Framework for C
OpenRefactory/C Online Demo available at: http://www.openrefactory.org/demo.html
spite of the popularity of C, IDEs for the language offer limited
support for source-level transformations, often not going beyond
primitive refactorings. Even those refactorings tend to be slow and
buggy. Their limitations are particularly evident when refactoring C
libraries. These libraries are highly configurable, making heavy use of
the C preprocessor. Current tools do not handle C preprocessor well.
Another shortcoming of the current tools is the lack of data flow analysis and control flow analysis (some tools have support for rudimentary control flow analysis).
We want to
handle the C preprocessor and program analysis concerns in C language
IDEs. We will explore new techniques for handling both the syntactic
and semantic complexities introduced, ans we will build a source-level
program transformation infrastructure that allows our techniques to be
evaluated. Our infrastructure will serve as a platform for future
researchers to investigate C transformations.
Our infrastructure currently supports more program analyses than any other competing tools. The OpenRefactory/C insfrastructure supports name binding analysis, type analysis, forward and backward control flow analysis, call graph analysis and Anderson's points-to analysis.
The figure on the rights shows a visualization of the call graph of a C programs. The function definition has call graph edges to all the function calls made within the body of the function.
People (Past and Present)
Munawar Hafiz (Assistant Professor, Auburn University), Jeffrey Overbey (Research Assistant Professor, Auburn University), Xuechao Li (Grad Student), Farnaz Behrang (Grad Student), Dusten Doggett (Grad Student), Zack Coker (Undergrad), Joel Eichelkraut (Undergrad)
Last modified: Oct 21, 2012
Conceived and Maintained by: Munawar Hafiz