|
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
|
Sorin Lerner , Todd Millstein , Erika Rice , Craig Chambers, Automated soundness proofs for dataflow analyses and transformations via local rules, Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.364-377, January 12-14, 2005, Long Beach, California, USA
|
| |
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
|
D. Tarditi , G. Morrisett , P. Cheng , C. Stone , R. Harper , P. Lee, TIL: a type-directed optimizing compiler for ML, Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation, p.181-192, May 21-24, 1996, Philadelphia, Pennsylvania, United States
|
 |
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.
|
|