Abstract Interpretation-Based Certification of Assembly Code

  • Xavier Rival
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2575)

Abstract

We present a method for analyzing assembly programs based on source program analysis and invariant translation. It is generic in the choice of an abstract domain for representing stores. This method is adapted to the design of certification tools for assembly programs generated by compiling programs written in an imperative language, without writing a specific compiler or modifying an existing one since invariant translation only uses standard debugging information. A prototype was developed for a procedural subset of the C language.

Keywords

Static program analysis compilation Abstract Interpretation 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    M. Alt, C. Ferdinand, F. Martin, and R. Wilhelm. Cache Behavior Prediction by Abstract Interpretation. In Static Analysis Symposium, LNCS, 1996.Google Scholar
  2. 2.
    Y. Bertot. A certified compiler for an imperative language. Technical Report RR-3488, INRIA, 1998.Google Scholar
  3. 3.
    B. Blanchet, P. Cousot, R. Cousot, J. Feret, L. Mauborgne, A. Miné, D. Monniaux, and X. Rival. Design and implementation of a special-purpose static program analyzer for safety-critical real-time embedded software, invited chapter. In T. Mogensen, D. Schmidt, and I. Sudborough, editors, The Essence of Computation: Complexity, Analysis, Transformation, LNCS. Springer-Verlag, 2002. To appear.Google Scholar
  4. 4.
    P. Cousot. Semantic foundations of program analysis. In S. Muchnick and N. Jones, editors, Program Flow Analysis: Theory and Applications, chapter 10. Prentice-Hall, Inc., Englewood Clifis, New Jersey, 1981.Google Scholar
  5. 5.
    P. Cousot and R. Cousot. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Conference Record of the 4th Symposium on Principles of Programming Languages, 1977.Google Scholar
  6. 6.
    P. Cousot and R. Cousot. Systematic design of program analysis frameworks. In Conference Record of the 6th Symposium on Principles of Programming Languages. ACM Press, New York, NY, 1979.Google Scholar
  7. 7.
    P. Cousot and R. Cousot. Systematic design of program transformation frameworks by abstract interpretation. In Conference Record of the 29th Symposium on Principles of Programming Languages. ACM Press, New York, NY, 2002.Google Scholar
  8. 8.
    C. Ferdinand, F. Martin, and R. Wilhelm. Applying Compiler Techniques to Cache Behavior Prediction. In Workshop on Languages, Compilers and Tools for Real-Time Systems (LCT-RTS), 1997.Google Scholar
  9. 9.
    J. Feret. Dependency analysis of mobile systems. In European Symposium on Programming (ESOP’02), 2002.Google Scholar
  10. 10.
    M. Karr. Affine relationships among variables of a program. Acta Informatica, pages 133–151, 1976.Google Scholar
  11. 11.
    A. Miné. The octagon abstract domain. In AST 2001 in WCRE 2001, IEEE, 2001.Google Scholar
  12. 12.
    G. Morrisett, D. Tarditi, P. Cheng, C. Stone, R. Harper, and P. Lee. The TIL/ML Compiler: Performance and Safety Through Types. In Workshop on Compiler Support for Systems Software, 1996.Google Scholar
  13. 13.
    G. C. Necula. Proof-Carrying Code. In Proceedings of the 24th ACM SIGPLANSIGACT Symposium on Principles of Programming Langauges (POPL’ 97), 1997.Google Scholar
  14. 14.
    G. C. Necula. Translation validation for an optimizing compiler. ACM SIGPLAN Notices, 35(5):83–94, 2000.CrossRefGoogle Scholar
  15. 15.
    A. Tarski. A lattice-theoretical fixpoint theorem and its applications. Pacific Journal of Mathematics, 1955.Google Scholar
  16. 16.
    H. Theiling and C. Ferdinand. Combining Abstract Interpretation and ILP for Microarchitecture Modelling and Program Path Analysis. In Proceedings of the 19th IEEE Real-Time Systems Symposium, 1998.Google Scholar
  17. 17.
    H. Theiling, C. Ferdinand, and R. Wilhelm. Fast and Precise WCET Prediction by Seperate Cache and Path Analyses. Real-Time Systems, 2000.Google Scholar
  18. 18.
    L. Zuck, A. Pnuelli, Y. Fang, and B. Goldberg. VOC: A translation validator for optimizing compilers. In J. Knoop and W. Zimmermann, editors, Electronic Notes in Theoretical Computer Science, volume 65. Elsevier Science Publishers, 2002.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Xavier Rival
    • 1
  1. 1.École Normale SupérieureParis cedex 5France

Personalised recommendations