ACM Home Page
Please provide us with feedback. Feedback
Certificate translation for optimizing compilers
Full text PdfPdf (931 KB)
Source
ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 31 ,  Issue 5  (June 2009) table of contents
Article No. 18  
Year of Publication: 2009
ISSN:0164-0925
Authors
Gilles Barthe  IMDEA Software
Benjamin Grégoire  INRIA Sophia Antipolis—Méditerranée
César Kunz  INRIA Sophia Antipolis—Méditerranée
Tamara Rezk  INRIA Sophia Antipolis—Méditerranée
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 35,   Downloads (12 Months): 137,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1538917.1538919
What is a DOI?

ABSTRACT

Proof Carrying Code provides trust in mobile code by requiring certificates that ensure the code adherence to specific conditions. The prominent approach to generate certificates for compiled code is Certifying Compilation, that automatically generates certificates for simple safety properties.

In this work, we present Certificate Translation, a novel extension for standard compilers that automatically transforms formal proofs for more expressive and complex properties of the source program to certificates for the compiled code.

The article outlines the principles of certificate translation, instantiated for a nonoptimizing compiler and for standard compiler optimizations in the context of an intermediate RTL Language.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Bannwart, F. Y. and Müller, P. 2005. A program logic for bytecode. Electron. Notes Theoret. Comput. Sci. 141, 255--273.
 
2
Barnett, M., Chang, B.-Y. E., DeLine, R., Jacobs, B., and Leino, K. R. M. 2005. Boogie: A modular reusable verifier for object-oriented programs. In Formal Methods for Components and Objects. Lecture Notes in Computer Science, vol. 4111. Springer-Verlag.
 
3
Barnett, M., Leino, K. R. M., and Schulte, W. 2005. The Spec# programming system: An overview. In Construction and Analysis of Safe, Secure and Interoperable Smart Devices: Proceedings of the International Workshop CASSIS 2004, G. Barthe, L. Burdy, M. Huisman, J.-L. Lanet, and T. Muntean, Eds. Lecture Notes in Computer Science, vol. 3362. Springer-Verlag, 151--171.
 
4
Barrett, C. W., Fang, Y., Goldberg, B., Hu, Y., Pnueli, A., and Zuck, L. D. 2005. Tvoc: A translation validator for optimizing compilers. In Proceedings of the International Conference on Computer-Aided Verification, K. Etessami and S. K. Rajamani, Eds. Lecture Notes in Computer Science, vol. 3576, Springer-Verlag, 291--295.
 
5
Barthe, G., Burdy, L., Charles, J., Grégoire, B., Huisman, M., Lanet, J.-L., Pavlova, M., and Requet, A. 2007. JACK: A tool for validation of security and behaviour of Java applications. In Formal Methods for Components and Objects: Revised Lectures from the 5th International Symposium (FMCO'06). Lecture Notes in Computer Science, vol. 4709, Springer-Verlag, 152--174.
 
6
Barthe, G., Grégoire, B., Kunz, C., and Rezk, T. 2006. Certificate translation for optimizing compilers. In Proceedings of the Static Analysis Symposium, K. Yi, Ed. Lecture Notes in Computer Science. vol. 4134, Springer-Verlag, 301--317.
 
7
 
8
Barthe, G. and Kunz, C. 2008. Certificate translation in abstract interpretation. In European Symposium on Programming. Lecture Notes in Computer Science, vol. 4960. Springer-Verlag, 368--382.
 
9
 
10
Barthe, G., T. Rezk, and Saabas, A. 2005. Proof obligations preserving compilation. In Workshop on Formal Aspects in Security and Trust, T. Dimitrakos, F. Martinelli, P. Ryan, and S. Schneider, Eds. Lecture Notes in Computer Science, vol. 3866. Springer-Verlag, 112--126.
 
11
Bertot, Y., Grégoire, B., and Leroy, X. 2004. A structured approach to proving compiler optimizations based on dataflow analysis. In TYPES, J. Filliâtre, C. Paulin-Mohring, and B. Werner, Eds. Lecture Notes in Computer Science, vol. 3839. Springer, 66--81.
 
12
Blazy, S., Dargaye, Z., and Leroy, X. 2006. Formal verification of a c compiler front-end. In Proceedings of the International Conference on Formal Methods (FM), J. Misra, T. Nipkow, and E. Sekerinski, Eds. Lecture Notes in Computer Science, vol. 4085. Springer, 460--475.
 
13
Burdy, L., Cheon, Y., Cok, D., Ernst, M., Kiniry, J., Leavens, G., Leino, K., and Poll, E. 2003. An overview of JML tools and applications. In Proceedings of the Workshop on Formal Methods for Industrial Critical Systems. Electronic Notes in Theoretical Computer Science, vol. 80. Elsevier, 73--89.
14
 
15
Chalin, P., Kiniry, J. R., Leavens, G. T., and Poll, E. 2006. Beyond assertions: Advanced specification and verification with JML and ESC/Java2. In Formal Methods for Components and Objects, Lecture Notes in Computer Science, vol. 4111. 342--363.
 
16
 
17
 
18
Leino, K. R. M. 2006. Specifying and verifying programs in spec#. In Proceedings of the Ershov Memorial Conference, I. Virbitskaite and A. Voronkov, Eds. Lecture Notes in Computer Science, vol. 4378. Springer, 20.
 
19
20
 
21
Leroy, X. 2006a. Coinductive big-step operational semantics. In Programming Languages and Systems: Proceedings of the 15th European Symposium on Programming, (ESOP'06). Lecture Notes in Computer Science, vol. 3924. Springer-Verlag, 54--68.
22
23
 
24
25
26
27
 
28
Nordio, M., Müller, P., and Meyer, B. 2008a. Formalizing proof-transforming compilation of eiffel programs. Tech. rep. 587, ETH Zurich.
 
29
Nordio, M., Müller, P., and Meyer, B. 2008b. Proof-transforming compilation of eiffel programs. In TOOLS-EUROPE, R. Paige, Ed. Lecture Notes in Business and Information Processing. Springer-Verlag.
 
30
31
 
32
Saabas, A. and Uustalu, T. 2008. Program and proof optimizations with type systems. J. Logic Algebra. Program. 77, 1--2, 131--154.
 
33
Seo, S., Yang, H., and Yi, K. 2003. Automatic construction of Hoare proofs from abstract interpretation results. In Proceedings of the Asian Programming Languages and Systems Symposium, A. Ohori, Ed. Lecture Notes in Computer Science, vol. 2895. Springer-Verlag, 230--245.
34
 
35
36
37
 
38
Wildmoser, M., Chaieb, A., and Nipkow, T. 2005. Bytecode analysis for proof carrying code. In Bytecode Semantics, Verification, Analysis and Transformation, F. Spoto, Ed. Electronic Notes in Theoretical Computer Science, vol. 141. Elsevier.
 
39
Zuck, L. D., Pnueli, A., Fang, Y., and Goldberg, B. 2002. Voc: A translation validator for optimizing compilers. Electron. Notes Theor. Comput. Sci. 65, 2.

Collaborative Colleagues:
Gilles Barthe: colleagues
Benjamin Grégoire: colleagues
César Kunz: colleagues
Tamara Rezk: colleagues