A certifying compiler for Java

  • Authors:
  • Christopher Colby;Peter Lee;George C. Necula;Fred Blau;Mark Plesko;Kenneth Cline

  • Affiliations:
  • Cedilla Systems Incorporated, 4616 Henry Street, Pittsburgh, Pennsylvania;Cedilla Systems Incorporated, 4616 Henry Street, Pittsburgh, Pennsylvania;Cedilla Systems Incorporated, 4616 Henry Street, Pittsburgh, Pennsylvania;Cedilla Systems Incorporated, 4616 Henry Street, Pittsburgh, Pennsylvania;Cedilla Systems Incorporated, 4616 Henry Street, Pittsburgh, Pennsylvania;Cedilla Systems Incorporated, 4616 Henry Street, Pittsburgh, Pennsylvania

  • Venue:
  • PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
  • Year:
  • 2000

Quantified Score

Hi-index 0.02

Visualization

Abstract

This paper presents the initial results of a project to determine ifthe techniques of proof-carrying code and certifying compilers can be applied to programming languages of realistic size and complexity. The experiment shows that: (1) it is possible to implement a certifying native-code compiler for a large subset of the Java programming language; (2) the compiler is freely able to apply many standard local and global optimizations; and (3) the PCC binaries it produces are of reasonable size and can be rapidly checked for type safety by a small proof-checker. This paper also presents further evidence that PCC provides several advantages for compiler development. In particular, generating proofs of the target code helps to identify compiler bugs, many of which would have been difficult to discover by testing.