Frequently Asked Questions
Why automatic translation?
An automatic, complete and correct translation - compared to a manual translation - has the advantage that the whole
codebase can be migrated instantly (instead of needing months or years) and the resulting translation is
fully functional (instead of losing the quality of well-tested software by rewriting it from scratch).
It has the disadvantage however that fully automatic translation cannot always guarantee optimal
readability: it may introduce non-natural code fragments, which, however, can be optionally
rewritten by hand, at a fraction of the cost of a full manual translation.
How does the quality of the translated code compare to manually written Java code?
Readability and maintainability of the resulting code was one of the main focuses from the start.
The translation applies numerous optimizations to make the Java code look as natural as possible.
Take a look at the
Demo section to get an impression of
the code quality you can expect.
Which C standards are supported?
We adhere to specific compiler implementations, not to C standards.
This way we can guarantee that the translation is functionally equivalent to the original C code
even when that code relies on compiler-specific behavior.
We support all recent versions of GCC and can adapt our translation to other compilers and C
dialects upon request.
How is a project translated?
Translating a C project is as easy as doing a regular build of it.
During compilation our system collects all the required data (C code, linked libraries, ...).
After a successful build, the collected data can directly be translated to Java.
Such a translation corresponds to a specific configuration of the C project. If the project has multiple
configurations (for example, targeting different platforms), it is translated once for each configuration,
and then all the resulting translations are merged into one Java project.
Does it really work?
Yes! The theoretical basis for the translation has been developed at
ETH Zurich,
as part of the PhD thesis of Dr. Marco Trudel. The
project website
contains a list of peer-reviewed publications that describe the technical details of
the translation.