• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

Certified Run-time Code Generation (2002)

Cached

  • Download as a PDF

Download Links

  • [www.cs.cornell.edu]
  • [www.cs.cornell.edu]
  • [www.cs.cornell.edu]
  • [www.cs.cornell.edu]
  • [www.cs.cornell.edu]
  • [www.eecs.harvard.edu]

  • Save to List
  • Add to Collection
  • Correct Errors
  • Monitor Changes
by Frederick M. Smith
Venue:JOURNAL OF FUNCTIONAL PROGRAMMING
Citations:8 - 1 self
  • Summary
  • Active Bibliography
  • Co-citation
  • Clustered Documents
  • Version History

BibTeX

@TECHREPORT{Smith02certifiedrun-time,
    author = {Frederick M. Smith},
    title = {Certified Run-time Code Generation},
    institution = {JOURNAL OF FUNCTIONAL PROGRAMMING},
    year = {2002}
}

Bookmark

citeulike Connotea Bibsonomy Del.icio.us Digg Reddit

OpenURL

 

Abstract

Run-time code generation (RTCG) has been shown to be an effective optimiza-tion. Systems such as DyC, ’C, Tempo, and Fabius have demonstrated order of magnitude improvements on benchmark programs. In addition, by using binding time analyses, the benefits of RTCG can be obtained with minimal programmer effort. Languages like MetaML and PML have explored type systems for RTCG that can ensure programs using RTCG do not crash. In earlier work we presented Cyclone – a type-safe language based on C with support for RTCG. The safety guarantee provided by a type-safe source language may fail to hold of the compiler’s output. Rather than trusting that the compiler is correctly im-plemented, we can use a certifying compiler to check that the output is type safe. A certifying compiler produces a certificate, along with the object code, which together can be used to verify that the object code is safe. Here we develop a certifying and optimizing compiler for Cyclone supporting run-time code generation. The output of our compiler is TAL/T – x86 object code augmented with typing annotations. Part of our system is a verifier for TAL/T capable of mechanically checking that TAL/T programs are type safe – they cannot crash. This guarantee provides increased confidence in the compiler-generated code. The contributions of this thesis include: 1) a framework for compiling and opti-mizing programs supporting RTCG, 2) a formal proof that well-typed TAL/T pro-grams cannot crash, and 3) an evaluation of our compiler using micro-benchmarks, a raytracer, and an instruction set simulator.

Citations

1016 Proof-carrying code - Necula - 1997
843 Advanced Compiler Design and Implementation - Muchnick - 1997
593 Partial Evaluation and Automatic Program Generation - Jones, Gomard, et al. - 1993
557 From system F to typed assembly language - Morrisett, Walker, et al. - 1999
521 The NAS parallel benchmarks - Bailey, Barszcz, et al. - 1991
493 An improved illumination model for shaded display - Whitted - 1980
490 A syntactic approach to type soundness - Wright, Felleisen - 1994
398 Evaluating Future Microprocessors: The SimpleScalar Tool Set - Burger, Austin, et al. - 1996
381 Safe Kernel Extensions without Run-time Checking - Necula, Lee
339 Towards a theory of type structure - Reynolds
315 Shade: A Fast Instruction-Set Simulator for Execution Profiling - Cmelik, Keppel - 1994
299 The mechanical evaluation of expressions - Landin - 1964
285 Gprof: A call graph execution profiler - Graham, Kessler, et al. - 1982
278 Lambda-calculus notation with nameless dummies, a tool for automatic formula manipulation - Bruijn - 1972
272 Dependent types in practical programming - Xi, Pfenning - 1999
245 The Design and Implementation of a Certifying Compiler - Necula, Lee - 2004
219 TIL: A TypeDirected Optimizing Compiler for ML - Tarditi, Morrisett, et al. - 1996
213 Foundational proof-carrying code - Appel - 2001
201 MetaML and multi-stage programming with explicit annotations - Taha, Sheard
195 Une extension de l’interprétation de Gödel à l’analyse et son application à l’élimination des coupures dans l’analyse et la théorie des types - Girard - 1970
190 ORBIT: An optimizing compiler for Scheme - KRANZ, KELSEY, et al. - 1986
181 The C Programming Language, Second Edition - Kernighan, Ritchie - 1988
169 The Multiflow trace scheduling compiler - Lowney, Freudenberger, et al. - 1993
165 A modal analysis of staged computation - Davies, Pfenning
163 Unboxed objects and polymorphic typing - Leroy - 1992
162 Eliminating Array Bound Checking Through Dependent Types - Xi, Pfenning - 1998
159 The Jalapeño dynamic optimizing compiler for Java - BURKE, CHOI, et al. - 1999
157 Alias types - Smith, Walker, et al. - 2000
148 Optimizing ML with Run-Time Code Generation - Lee, Leone - 1996
146 Embra: fast and flexible machine simulation - Witchel, Rosenblum - 1996
143 TALx86: A realistic typed assembly language - MORRISETT, CRARY, et al. - 1999
136 Stack-based typed assembly language - Morrisett, Crary, et al. - 2002
122 A semantic model of types and machine instructions for proof-carrying code - Appel, Felty - 2000
121 P.: BI as an assertion language for mutable data structures - Ishtiaq, O’Hearn - 2001
111 Resource bound certification - Crary, Weirich - 2000
108 Linear scan register allocation - Poletto, Sarkar - 1999
103 A practical soft type system for scheme - Wright, Cartwright - 1997
97 Compiling with Types - Morrisett - 1995
92 e ective dynamic compilation - Fast - 1996
91 RABBIT: a compiler for SCHEME - JR, L - 1978
88 DyC: an expressive annotationdirected dynamic compiler for C - Mock, Chambers, et al. - 2000
83 et.al, "An Evaluation of Staged Run-time Optimizations in DyC - Grant - 1999
79 Multi-stage programming: its theory and applications - Taha - 1999
77 A temporal-logic approach to binding-time analysis - Davies - 1996
75 The revised 4 report on the algorithmic language scheme - Clinger, Rees - 1991
68 N.: A uniform approach for compile-time and run-time specialization - Consel, Hornof, et al. - 1996
57 A case for runtime code generation - Keppel, Eggers, et al. - 1991
55 tcc: a system for fast flexible, and high-level dynamic code generation - Poletta, Engler, et al. - 1997
52 Lightweight run-time code generation - Leone, Lee - 1994
50 Improving Prediction for Procedure Returns with Return-AddressStack Repair Mechanisms - Skadron, Ahuja, et al. - 1998
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

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

© 2007-2010 The Pennsylvania State University