• Documents
  • Authors
  • Tables
  • Log in
  • Sign up
  • MetaCart
  • DMCA
  • Donate

CiteSeerX logo

DMCA

The Design and Implementation of a Certifying Compiler (1998)

Cached

  • Download as a PDF

Download Links

  • [pag.csail.mit.edu]
  • [www.cs.cmu.edu]
  • [www-nt.cs.berkeley.edu]
  • [types.bu.edu]
  • [www.cs.cmu.edu]
  • [www.cs.berkeley.edu]
  • [www.cse.ucsd.edu]
  • [www-plan.cs.colorado.edu]
  • [www.cs.colorado.edu]

  • Save to List
  • Add to Collection
  • Correct Errors
  • Monitor Changes
by George C. Necula , Peter Lee
Citations:275 - 10 self
  • Summary
  • Citations
  • Active Bibliography
  • Co-citation
  • Clustered Documents
  • Version History

BibTeX

@MISC{Necula98thedesign,
    author = {George C. Necula and Peter Lee},
    title = { The Design and Implementation of a Certifying Compiler},
    year = {1998}
}

Share

Facebook Twitter Reddit Bibsonomy

OpenURL

 

Abstract

This paper presents the design and implementation of a com-piler that translates programs written in a type-safe subset of the C programming language into highly optimized DEC Alpha assembly language programs, and a certifier that automatically checks the type safety and memory safety of any assembly language program produced by the compiler. The result of the certifier is either a formal proof of type safety or a counterexample pointing to a potential violation of the type system by the target program. The ensemble of the compiler and the certifier is called a certifying compiler. Several advantages of certifying compilation over previous approaches can be claimed. The notion of a certify-ing compiler is significantly easier to employ than a formal compiler verification, in part because it is generally easier to verify the correctness of the result of a computation than to prove the correctness of the computation itself. Also, the approach can be applied even to highly optimizing compilers, as demonstrated by the fact that our compiler generates target code, for a range of realistic C programs, which is competitive with both the cc and gee compilers with all op-timizations enabled. The certifier also drastically improves the effectiveness of compiler testing because, for each test case, it statically signals compilation errors that might oth-erwise require many executions to detect. Finally, this ap-proach is a practical way to produce the safety proofs for a Proof-Carrying Code system, and thus may be useful in a system for safe mobile code.

Keyphrases

certifying compiler    type safety    counterexample pointing    certify-ing compiler    realistic program    target program    safe mobile code    gee compiler    many execution    memory safety    formal compiler verification    several advantage    target code    programming language    proof-carrying code system    formal proof    compiler testing    safety proof    practical way    compilation error    potential violation    assembly language program    previous approach    type system    test case    language program    type-safe subset    dec alpha   

Powered by: Apache Solr
  • About CiteSeerX
  • Submit and Index Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2019 The Pennsylvania State University