|
|
IntroductionThe rcc compiler takes C language program files as input and transforms the input functions, making them reversible. It generates as output both the reversible forms of the input functions as well as their corresponding inverse functions. For example, for each function foo(), it outputs two functions
The source-to-source transformations performed by rcc are documented in the following technical report:
Obtaining RCCPlease send email to kalyan@cc.gatech.edu to obtain a copy of RCC software. Installing RCCChange directory to RCC/kalyan-ctree_14/src and type "make". An "rcc" executable will be created in that directory. Running RCCRun "rcc infile.c > outfile.c" where infile.c is the input C program file, and outfile.c is the output file in which the transformed program should be placed. Additionally, a log file named infile.log will be generated by rcc recording a description of its actions on the input elements and transformations. Modifying RCCMost of the reverse code transformations are concentrated in the file proctree.c, starting with the process_tree() function which is the entry function into the reverse compilation. The rcc compiler is written using the CTREE package orignally from University of Wisconsin (currently at www.spf-15.com/ctree.html ). CTREE afforded me an opportunity to get quickly started with rcc development, but in retrospect a more sophisticated tool might be better suited for sustained longer term (production version) development. OptimizationsFor specifying optimization parameters in input source-code, please see the list of pragma directives documented in the technical report mentioned previously. Other NotesAs of Jun 14, 2001:
|
|