An Easy to Use Infrastructure for Building Static Analysis Tools

  • Kamil Dudka
  • Petr Peringer
  • Tomáš Vojnar
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6927)

Abstract

This paper deals with design and implementation of an easy to use infrastructure for building static analyzers. The infrastructure provides an abstraction layer called a Code Listener over existing source code parsers like, for example, GCC or Sparse. It is distributed as a C++ library that can be used to build static analyzers in the form of GCC plug-ins. The interface exposed to analyzers is, however, completely independent of GCC, which allows one to run the same analyzer on top of different code parsers without a need to change anything in the analyzer. We describe the key design principles of the infrastructure and briefly introduce its application programming interface that is available to analyzers. The infrastructure is already used in research prototypes Predator and Forester, implementing advanced shape analyses, intended to operate on real industrial code.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Dudka, K., Peringer, P., Vojnar, T.: Predator: A Practical Tool for Checking Manipulation of Dynamic Data Structures Using Separation Logic. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 372–378. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  2. 2.
    Habermehl, P., Holík, L., Šimáček, J., Rogalewicz, A., Vojnar, T.: Forest Automata for Verification of Heap Manipulation. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 424–440. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  3. 3.
    Merill, J.: GENERIC and GIMPLE: A New Tree Representation for Entire Functions. In: Proceedings of the 2003 GCC Summit, Ottawa, Canada (May 2003)Google Scholar
  4. 4.
    Necula, G., McPeak, S., Rahul, S., Weimer, W.: Cil: Intermediate Language and Tools for Analysis and Transformation of C Programs. In: Proc. of CC 2002. LNCS, vol. 2304, pp. 213–228. Springer, Heidelberg (2002)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Kamil Dudka
    • 1
  • Petr Peringer
    • 1
  • Tomáš Vojnar
    • 1
  1. 1.FITBrno University of TechnologyCzech Republic

Personalised recommendations