INTELLECT: INTErmediate-Language LEvel C Translator

Static analysis tools have proven to be valuable in detecting software bugs in early development stages. As Java emerges to be the language of choice for software developers, many Java analysis tools have been developed. Since many properties that are checked by these tools are also desirable in C programs, it makes sense to make these analyses available for software written in C. In this paper we present an intermediate language level C to Java translator called INTELLECT. INTELLECT preserves the precise control and data information needed by static analysis tools such that no information is lost due to the translation from the perspective of static analysis. Our experiments demonstrate that INTELLECT is sufficiently robust - it successfully translated a subsystem of a complex embedded kernel written in C. We were also able to apply analyses originally developed for Java on the translated code. Thus we believe that building such a C to Java translator is practical, and that such a tool can facilitate the reuse of existing and future Java analysis tools on programs written in C, thus greatly enhancing the return on the cost of developing such tools.

By: Sumit K. Jain; Guillaume Marceau; Xiaolan Zhang; Larry Koved; Trent Jaeger

Published in: RC23907 in 2006


This Research Report is available. This report has been submitted for publication outside of IBM and will probably be copyrighted if accepted for publication. It has been issued as a Research Report for early dissemination of its contents. In view of the transfer of copyright to the outside publisher, its distribution outside of IBM prior to publication should be limited to peer communications and specific requests. After outside publication, requests should be filled only by reprints or legally obtained copies of the article (e.g., payment of royalties). I have read and understand this notice and am a member of the scientific community outside or inside of IBM seeking a single copy only.


Questions about this service can be mailed to .