Serializing C intermediate representations for efficient and portable parsing. Jeffrey A. Meister, Jeffrey S. Foster, and Michael Hicks, June 2008.

C static analysis tools often use intermediate representations (IRs) that organize program data in a simple, well-structured manner. However, the C parsers that create IRs are slow, and because they are difficult to write, only a few implementations exist, limiting the languages in which a C static analysis can be written. To solve these problems, we investigate two language-independent, on-disk representations of C IRs: one using XML, and the other using an Internet standard binary encoding called XDR. We benchmark the parsing speeds of both options, finding the XML to be about five times slower than parsing C and the XDR about four times faster. Furthermore, we show that the XML files are far too large at 19 times the size of C source code, while XDR is only 2.2 times the C size. We also demonstrate the portability of our XDR system by presenting a C source code querying tool in Ruby. Our solution and the insights we gained from building it will be useful to analysis authors and other clients of C IRs. We have made our software freely available for download.

[ http | .pdf ]

@MISC{meister08cir,
  AUTHOR = {Jeffrey A. Meister and Jeffrey S. Foster and Michael Hicks},
  TITLE = {Serializing {C} intermediate representations for efficient and portable parsing},
  HTTP = {http://www.cs.umd.edu/projects/PL/scil},
  SUBMITTED = {yes},
  MONTH = JUN,
  YEAR = 2008
}

Back


This file has been generated by bibtex2html 1.69