Title :
C to O-O Translation: Beyond the Easy Stuff
Author :
Trudel, Marco ; Furia, Carlo A. ; Nordio, Martin ; Meyer, Bertrand ; Oriol, Manuel
Author_Institution :
Dept. of Software Eng., ETH Zurich, Zurich, Switzerland
Abstract :
Can we reuse some of the huge code-base developed in C to take advantage of modern programming language features such as type safety, object-orientation, and contracts? This paper presents a source-to-source translation of C code into Eiffel, a modern object-oriented programming language, and the supporting tool C2Eif. The translation is completely automatic and supports the entire C language (ANSI, as well as many GNU C Compiler extensions, through CIL) as used in practice, including its usage of native system libraries and inlined assembly code. Our experiments show that C2Eif can handle C applications and libraries of significant size (such as vim and libgsl), as well as challenging benchmarks such as the GCC torture tests. The produced Eiffel code is functionally equivalent to the original C code, and takes advantage of some of Eiffel´s features to produce safe and easy-to-debug translations.
Keywords :
C language; object-oriented languages; program interpreters; C code; C language; Eiffel code; Eiffel language; GCC torture test; GNU C compiler extension; assembly code; language translation; native system library; object-oriented language; programming language; Arrays; Contracts; Libraries; Memory management; Runtime; Standards; Syntactics;
Conference_Titel :
Reverse Engineering (WCRE), 2012 19th Working Conference on
Conference_Location :
Kingston, ON
Print_ISBN :
978-1-4673-4536-1
DOI :
10.1109/WCRE.2012.12