Abstract
Translation validation consists of transforming a program and a posteriori validating it in order to detect a modification of itssemantics. This approach can be used in a verified compiler, provided that validation is formally proved to be correct. We present two such validators and their Coq proofs of correctness. The validators are designed for two instruction scheduling optimizations: list scheduling and trace scheduling.
- Andrew W. Appel. Modern Compiler Implementation in ML. Cambridge University Press, 1998. Google Scholar
Digital Library
- Clark W. Barret, Yi Fang, Benjamin Goldberg, Ying Hu, Amir Pnueli, and Lenore Zuck. TVOC: A translation validator for optimizing compilers. In Computer Aided Verification, 17th Int. Conf., CAV 2005, volume 3576 of Lecture Notes in Computer Science, pages 291--295. Springer, 2005. Google Scholar
Digital Library
- Gilles Barthe, Julien Forest, David Pichardie, and Vlad Rusu. Defining and reasoning about recursive functions: a practical tool for the Coq proof assistant. In Functional and Logic Programming, 8th Int. Symp., FLOPS 2006, volume 3945 of Lecture Notes in Computer Science, pages 114--129. Springer, 2006. Google Scholar
Digital Library
- Yves Bertot and Pierre Casteran. Interactive Theorem Proving and Program Development - Coq'Art: The Calculus of Inductive Constructions. EATCS Texts in Theoretical Computer Science. Springer, 2004. Google Scholar
Digital Library
- David Cachera, Thomas Jensen, David Pichardie, and Vlad Rusu. Extracting a Data Flow Analyser in Constructive Logic. Theoretical Computer Science, 342(1):56--78, 2005. Google Scholar
Digital Library
- Coq development team. The Coq proof assistant. Software and documentation available at http://coq.inria.fr/, 1989--2007.Google Scholar
- Maulik A. Dave. Compiler verification: a bibliography. SIGSOFT Softw. Eng. Notes, 28(6):2--2, 2003. Google Scholar
Digital Library
- John R. Ellis. Bulldog: a compiler for VLSI architectures. ACM Doctoral Dissertation Awards. The MIT Press, 1986.Google Scholar
- Benjamin Goldberg, Lenore Zuck, and Clark Barret. Into the loops: Practical issues in translation validation for optimizing compilers. In Proc. Workshop Compiler Optimization Meets Compiler Verification (COCV 2004), volume 132 of Electronic Notes in Theoretical Computer Science, pages 53--71. Elsevier, 2005. Google Scholar
Digital Library
- Yuqiang Huang, Bruce R. Childers, and Mary Lou Soffa. Catching and identifying bugs in register allocation. In Static Analysis, 13th Int. Symp., SAS 2006, volume 4134 of Lecture Notes in Computer Science, pages 281--300. Springer, 2006. Google Scholar
Digital Library
- Gerwin Klein and Tobias Nipkow. Verified bytecode verifiers. Theoretical Computer Science, 298(3):583--626, 2003. Google Scholar
Digital Library
- Gerwin Klein and Tobias Nipkow. A machine-checked model for a Javalike language, virtual machine and compiler. ACM Transactions on Programming Languages and Systems, 28(4):619--695, 2006. Google Scholar
Digital Library
- D. Leinenbach, W. Paul, and E. Petrova. Towards the formal verification of a C0 compiler: Code generation and implementation correctness. In Int. Conf. on Software Engineering and Formal Methods (SEFM 2005), pages 2--11. IEEE Computer Society Press, 2005. Google Scholar
Digital Library
- Xavier Leroy. Formal certification of a compiler back-end, or: programming a compiler with a proof assistant. In 33rd symposium Principles of Programming Languages, pages 42--54. ACM Press, 2006. Google Scholar
Digital Library
- Xavier Leroy et al. The Compcert certified compiler back-end. Development available at http://gallium.inria.fr/~xleroy/ compcert-backend/, 2003--2007.Google Scholar
- Raya Leviathan and Amir Pnueli. Validating software pipelining optimizations. In Int. Conf. On Compilers, Architecture, And Synthesis For Embedded Systems (CASES 2002), pages 280--287. ACM Press, 2006. Google Scholar
Digital Library
- Steven S. Muchnick. Advanced compiler design and implementation. Morgan Kaufmann, 1997. Google Scholar
Digital Library
- George C. Necula. Translation validation for an optimizing compiler. In Programming Language Design and Implementation 2000, pages 83--95. ACM Press, 2000. Google Scholar
Digital Library
- Amir Pnueli, Ofer Shtrichman, and Michael Siegel. The code validation tool (CVT) - automatic verification of a compilation process. International Journal on Software Tools for Technology Transfer, 2:192--201, 1998a.Google Scholar
Cross Ref
- Amir Pnueli, Michael Siegel, and Eli Singerman. Translation validation. In Tools and Algorithms for Construction and Analysis of Systems, TACAS '98, volume 1384 of Lecture Notes in Computer Science, pages 151--166. Springer, 1998b. Google Scholar
Digital Library
- Xavier Rival. Symbolic transfer function-based approaches to certified compilation. In 31st symposium Principles of Programming Languages, pages 1--13. ACM Press, 2004. Google Scholar
Digital Library
- Emin Gun Sirer and Brian N. Bershad. Testing Java virtual machines. In Proc. Int. Conf. on Software Testing And Review, 1999.Google Scholar
- Martin Strecker. Compiler verification for C0. Technical report, Université Paul Sabatier, Toulouse, April 2005.Google Scholar
- L. Zuck, A. Pnueli, and R. Leviathan. Validation of optimizing compilers. Technical Report MCS01-12, Weizmann institute of Science, 2001. Google Scholar
Digital Library
- Lenore Zuck, Amir Pnueli, Yi Fang, and Benjamin Goldberg. VOC: A methodology for translation validation of optimizing compilers. Journal of Universal Computer Science, 9(3):223--247, 2003.Google Scholar
Index Terms
Formal verification of translation validators: a case study on instruction scheduling optimizations
Recommendations
Verified validation of lazy code motion
PLDI '09: Proceedings of the 30th ACM SIGPLAN Conference on Programming Language Design and ImplementationTranslation validation establishes a posteriori the correctness of a run of a compilation pass or other program transformation. In this paper, we develop an efficient translation validation algorithm for the Lazy Code Motion (LCM) optimization. LCM is ...
Verified validation of lazy code motion
PLDI '09Translation validation establishes a posteriori the correctness of a run of a compilation pass or other program transformation. In this paper, we develop an efficient translation validation algorithm for the Lazy Code Motion (LCM) optimization. LCM is ...
Formal verification of translation validators: a case study on instruction scheduling optimizations
POPL '08: Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languagesTranslation validation consists of transforming a program and a posteriori validating it in order to detect a modification of itssemantics. This approach can be used in a verified compiler, provided that validation is formally proved to be correct. We ...







Comments