|
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.
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
|
|
| |
2
|
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.
|
| |
3
|
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.
|
| |
4
|
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.
|
| |
5
|
|
| |
6
|
Coq development team. The Coq proof assistant. Software and documentation available at http://coq.inria.fr/, 1989--2007.
|
 |
7
|
|
| |
8
|
John R. Ellis. Bulldog: a compiler for VLSI architectures. ACM Doctoral Dissertation Awards. The MIT Press, 1986.
|
| |
9
|
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.
|
| |
10
|
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.
|
| |
11
|
|
 |
12
|
|
| |
13
|
|
 |
14
|
|
| |
15
|
Xavier Leroy et al. The Compcert certified compiler back-end. Development available at http://gallium.inria.fr/~xleroy/ compcert-backend/, 2003--2007.
|
 |
16
|
|
| |
17
|
|
 |
18
|
|
| |
19
|
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.
|
| |
20
|
|
 |
21
|
|
| |
22
|
Emin Gun Sirer and Brian N. Bershad. Testing Java virtual machines. In Proc. Int. Conf. on Software Testing And Review, 1999.
|
| |
23
|
Martin Strecker. Compiler verification for C0. Technical report, Université Paul Sabatier, Toulouse, April 2005.
|
| |
24
|
|
| |
25
|
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.
|
|