skip to main content
10.1145/1375581.1375604acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article

Type-preserving compilation for large-scale optimizing object-oriented compilers

Published: 07 June 2008 Publication History

Abstract

Type-preserving compilers translate well-typed source code, such as Java or C#, into verifiable target code, such as typed assembly language or proof-carrying code. This paper presents the implementation of type-preserving compilation in a complex, large-scale optimizing compiler. Compared to prior work, this implementation supports extensive optimizations, and it verifies a large portion of the interface between the compiler and the runtime system. This paper demonstrates the practicality of type-preserving compilation in complex optimizing compilers: the generated typed assembly language is only 2.3% slower than the base compiler's generated untyped assembly language, and the type-preserving compiler is 82.8% slower than the base compiler.

References

[1]
R. Bodik, R. Gupta, and V. Sarkar. ABCD: eliminating array-bounds checks on demand. In ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 321--333, 2000.
[2]
J. Chen and D. Tarditi. A simple typed intermediate language for object-oriented languages. In ACM Symposium on Principles of Programming Languages, pages 38--49, 2005.
[3]
J. Chen, D. Wu, A. W. Appel, and H. Fang. A provably sound TAL for back-end optimization. In ACM SIGPLAN Conference on Programming Language Design and Implementation, 2003.
[4]
C. Colby, P. Lee, G. C. Necula, F. Blau, K. Cline, and M. Plesko. A certifying compiler for Java. In ACM SIGPLAN Conference on Programming Language Design and Implementation, June 2000.
[5]
K. Crary and J. C. Vanderwaart. An expressive, scalable type theory for certified code. In ACM SIGPLAN International Conference on Functional Programming, pages 191--205, 2002.
[6]
Microsoft Corp. et al. Common Language Infrastructure. 2002. http://msdn.microsoft.com/net/ecma/.
[7]
D. Grossman and J. G. Morrisett. Scalable certification for typed assembly language. In International Workshop on Types in Compilation, pages 117--146, 2001.
[8]
X. Leroy. Formal certification of a compiler back-end or: programming a compiler with a proof assistant. In ACM Symposium on Principles of Programming Languages, pages 42--54, 2006.
[9]
V. S. Menon, N. Glew, B. R. Murphy, A. McCreight, T. Shpeisman, A. Adl-Tabatabai, and L. Petersen. A verifiable ssa program representation for aggressive compiler optimization. In ACM Symposium on Principles of Programming Languages, pages 397--408, 2006.
[10]
G. Morrisett, K. Crary, N. Glew, D. Grossman, R. Samuels, F. Smith, D. Walker, S. Weirich, and S. Zdancewic. TALx86: A realistic typed assembly language. In ACM SIGPLAN Workshop on Compiler Support for System Software, pages 25--35, 1999.
[11]
G. Morrisett, D. Walker, K. Crary, and N. Glew. From System F to typed assembly language. In ACM Symposium on Principles of Programming Languages, pages 85--97, 1998.
[12]
G. Necula. Proof-Carrying Code. In ACM Symposium on Principles of Programming Languages, pages 106--119, 1997.
[13]
F. Perry, C. Hawblitzel, and J. Chen. Simple and flexible stack types. In International Workshop on Aliasing, Confinement, and Ownership (IWACO), July 2007.
[14]
Z. Shao, B. Saha, V. Trifonov, and N. Papaspyrou. A type system for certified binaries. In ACM Symposium on Principles of Programming Languages, 2002.
[15]
J. C. Vanderwaart and K. Crary. A typed interface for garbage collection. In ACM SIGPLAN workshop on Types in languages design and implementation, pages 109--122, 2003.
[16]
H. Xi and R. Harper. A dependently typed assembly language. In 2001 ACM SIGPLAN International Conference on Functional Programming, pages 169--180, September 2001.

Cited By

View all

Index Terms

  1. Type-preserving compilation for large-scale optimizing object-oriented compilers

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    PLDI '08: Proceedings of the 29th ACM SIGPLAN Conference on Programming Language Design and Implementation
    June 2008
    396 pages
    ISBN:9781595938602
    DOI:10.1145/1375581
    • General Chair:
    • Rajiv Gupta,
    • Program Chair:
    • Saman Amarasinghe
    • cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 43, Issue 6
      PLDI '08
      June 2008
      382 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/1379022
      Issue’s Table of Contents
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 07 June 2008

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. object-oriented compilers
    2. type-preserving compilation

    Qualifiers

    • Research-article

    Conference

    PLDI '08
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 406 of 2,067 submissions, 20%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)8
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 14 Sep 2024

    Other Metrics

    Citations

    Cited By

    View all

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media