A Uniform and Certified Approach for Two Static Analyses

  • Solange Coupet-Grimal
  • William Delobel
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3839)

Abstract

We give a formal model for a first order functional language to be executed on a stack machine and for a bytecode verifier that performs two kinds of static verifications : a type analysis and a shape analysis, that are part of a system used to ensure resource bounds. Both are instances of a general data flow analyzer due to Kildall. The generic algorithm and both of its instances are certified with the Coq proof assistant.

Keywords

Virtual Machine Shape Analysis Dependent Type Symbolic Execution Program Counter 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Arkoudas, K., Salcianu, A.: Machine-checkable correctness proofs for intra-procedural dataflow analyses. In: Compiler Optimization meets Compiler Verification (COCV 2005), Edinburgh, Scotland (2005)Google Scholar
  2. 2.
    Amadio, R.M., Coupet-Grimal, S., Dal-Zilio, S., Jakubiec, L.: A functional scenario for bytecode verification of resource bounds. In: Marcinkowski, J., Tarlecki, A. (eds.) CSL 2004. LNCS, vol. 3210, pp. 265–279. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  3. 3.
    Balaa, A., Bertot, Y.: Fonctions récursives générales par itération en théorie des types. Journées Francophones pour les Langages Applicatifs (January 2002)Google Scholar
  4. 4.
    Barthe, G., Dufay, G., Jakubiec, L., de Sousa, S.M.: A formal correspondence between offensive and defensive javacard virtual machines. In: Cortesi, A. (ed.) VMCAI 2002. LNCS, vol. 2294, p. 32. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  5. 5.
    Barthe, G., Dufay, G., Jakubiec, L., Serpette, B.P., de Sousa, S.M.: A formal executable semantics of the javacard platform. In: Sands, D. (ed.) ESOP 2001. LNCS, vol. 2028, pp. 302–319. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  6. 6.
    Bertot, Y., Grégoire, B., Leroy, X.: A structured approach to proving compiler optimizations based on dataflow analysis. In: Filliâtre, J.-C., Paulin-Mohring, C., Werner, B. (eds.) TYPES 2004. LNCS, vol. 3839, pp. 66–81. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  7. 7.
    Cachera, D., Jensen, T., Pichardie, D., Rusu, V.: Extracting a Data Flow Analyser in Constructive Logic. In: FP5 IST thematic network IST-2001-38957 APPSEM II, Tallinn, Estonia (2004)Google Scholar
  8. 8.
    Goldberg, A.: A specification of java loading and bytecode verification. In: ACM Conference on Computer and Communications Security, pp. 49–58 (1998)Google Scholar
  9. 9.
    Kildall, G.A.: A unified approach to global program optimization. In: ACM Symposium on Principles of Programming Languages, pp. 194–206 (1973)Google Scholar
  10. 10.
    Klein, G., Nipkow, T.: Verified bytecode verifiers. Theoretical Computer Science 298, 583–626 (2003)MATHCrossRefMathSciNetGoogle Scholar
  11. 11.
    Leroy, X.: Java Bytecode Verification: Algorithms and Formalizations. Journal of Automated Reasoning 30(3-4), 235–269 (2003)MATHCrossRefMathSciNetGoogle Scholar
  12. 12.
    Marion, J.-Y.: Complexité implicite des calculs de la théorie à la pratique. PhD thesis, Habilitation à diriger des recherches, Universitè Nancy 2 (December 2000)Google Scholar
  13. 13.
    Nipkow, T.: Verified bytecode verifiers. In: Honsell, F., Miculan, M. (eds.) FOSSACS 2001. LNCS, vol. 2030, pp. 347–363. Springer, Heidelberg (2001)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Solange Coupet-Grimal
    • 1
  • William Delobel
    • 1
  1. 1.Laboratoire d’Informatique Fondamentale de Marseille (UMR 6166)CMI-Université de ProvenceMarseilleFrance

Personalised recommendations