Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Certificate translation for optimizing compilers
Barthe G., Grégoire B., Kunz C., Rezk T. ACM Transactions on Programming Languages and Systems31 (5):1-45,2009.Type:Article
Date Reviewed: Dec 4 2009

Compiler verification is an important special case of program verification. It deals with correctness proofs of a program (compiler) that translate input programs into output programs. Barthe et al. tackle an interesting amalgam of the generic and specific by building a framework for translating proofs of assertions for source programs into equivalent proofs for the compiled programs.

The paper is set in the context of a proof-carrying code framework. It addresses the technical problem of generating proofs for programs that have undergone optimization transformations that induce, in general, transformations in both assertions and their proofs.

The paper assumes that a source program is already certified--that is, it already contains all necessary proofs for assertions--and that certifying analyzers exist that can generate proofs for analysis results. Another mild but technically crucial assumption made is that the programs are well annotated; this assumption induces an induction principle that is essential for proofs in the paper.

For each optimization step, assertions in the program are strengthened with program analysis information. Proofs of source program assertions are then translated into proofs of the strengthened properties in the optimized program. Barthe et al. show how this can be achieved for a range of optimizations, including function inlining, register allocation, and dead code elimination.

This paper’s mainly theoretical contribution is based on a simplistic register transfer language that is extended with assertions. It is well written and presents the basic concepts clearly. Barthe et al. are one step closer to the ultimate goal of trusted computing.

Reviewer:  Prahladavaradan Sampath Review #: CR137544 (1005-0493)
Bookmark and Share
 
Formal Methods (D.2.4 ... )
 
 
Logics Of Programs (F.3.1 ... )
 
 
Program Analysis (F.3.2 ... )
 
 
Semantics Of Programming Languages (F.3.2 )
 
 
Specifying And Verifying And Reasoning About Programs (F.3.1 )
 
Would you recommend this review?
yes
no
Other reviews under "Formal Methods": Date
On a method of multiprogramming
Feijen W., van Gasteren A., Springer-Verlag New York, Inc., New York, NY, 1999. Type: Book (9780387988702)
May 1 2000
Computer-Aided reasoning: ACL2 case studies
Kaufmann M. (ed), Manolios P. (ed), Moore J. Kluwer Academic Publishers, Norwell, MA,2000. Type: Divisible Book
Jul 2 2002
Architecting families of software systems with process algebras
Bernardo M., Ciancarini P., Donatiello L. ACM Transactions on Software Engineering and Methodology 11(4): 386-426, 2002. Type: Article
Mar 10 2003
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy