IKOS: A Framework for Static Analysis Based on Abstract Interpretation

  • Guillaume Brat
  • Jorge A. Navas
  • Nija Shi
  • Arnaud Venet
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8702)


The RTCA standard (DO-178C) for developing avionic software and getting certification credits includes an extension (DO-333) that describes how developers can use static analysis in certification. In this paper, we give an overview of the IKOS static analysis framework that helps developing static analyses that are both precise and scalable. IKOS harnesses the power of Abstract Interpretation and makes it accessible to a larger class of static analysis developers by separating concerns such as code parsing, model development, abstract domain management, results management, and analysis strategy. The benefits of the approach is demonstrated by a buffer overflow analysis applied to flight control systems.


Abstract Representation Abstract Interpretation Intermediate Representation Abstract Domain Nondeterministic Choice 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    IKOS: Inference Kernel for Open Static Analyzers,
  2. 2.
    Brat, G., Klemm, R.: Static Analysis of the Mars Exploration Rover Flight Software. In: Space Mission Challenge for Information Technology, pp. 321–326 (2003)Google Scholar
  3. 3.
    Bygde, S.: Abstract Interpretation and Abstract Domains with special attention to the congruence domain. Master’s thesis. Mälardalen University, Sweden (2006)Google Scholar
  4. 4.
    Cousot, P., Cousot, R.: Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In: POPL, pp. 238–252 (1977)Google Scholar
  5. 5.
    Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Monniaux, D., Rival, X.: The Astreé Analyzer. In: Sagiv, M. (ed.) ESOP 2005. LNCS, vol. 3444, pp. 21–30. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  6. 6.
    Kestrel Technology: CodeHawk,
  7. 7.
    Lattner, C., Adve, V.: LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation. In: CGO 2004 (2004)Google Scholar
  8. 8.
    Miné, A.: The Octagon Abstract Domain. Higher-Order and Symbolic Computation 19(1), 31–100 (2006)CrossRefzbMATHGoogle Scholar
  9. 9.
    Necula, G.C., McPeak, S., Rahul, S.P., Weimer, W.: CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs. In: Nigel Horspool, R. (ed.) CC 2002. LNCS, vol. 2304, pp. 213–228. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  10. 10.
    Venet, A., Brat, G.P.: Precise and Efficient Static Array Bound Checking for Large Embedded C Programs. In: PLDI, pp. 231–242 (2004)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Guillaume Brat
    • 1
  • Jorge A. Navas
    • 1
  • Nija Shi
    • 1
  • Arnaud Venet
    • 1
  1. 1.NASA Ames Research CenterMoffett FieldUSA

Personalised recommendations