Sciweavers

Share
CC
2002
Springer

CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs

8 years 11 months ago
CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs
Abstract. This paper describes the C Intermediate Language: a highlevel representation along with a set of tools that permit easy analysis and source-to-source transformation of C programs. Compared to C, CIL has fewer constructs. It breaks down certain complicated constructs of C into simpler ones, and thus it works at a lower n abstract-syntax trees. But CIL is also more high-level than typical intermediate languages (e.g., three-address code) designed for compilation. As a result, what we have is a representation that makes it easy to analyze and manipulate C programs, and emit them in a form that resembles the original source. Moreover, it comes with a front-end that translates to CIL not only ANSI C programs but also those using Microsoft C or GNU C extensions. We describe the structure of CIL with a focus on how it disambiguates those features of C that we found to be most confusing for program analysis and transformation. We also describe a whole-program merger based on structur...
George C. Necula, Scott McPeak, Shree Prakash Rahu
Added 17 Dec 2010
Updated 17 Dec 2010
Type Journal
Year 2002
Where CC
Authors George C. Necula, Scott McPeak, Shree Prakash Rahul, Westley Weimer
Comments (0)
books