Chapter

Objects, Components, Models and Patterns

Volume 33 of the series Lecture Notes in Business Information Processing pp 77-95

Stream-Based Dynamic Compilation for Object-Oriented Languages

  • Michael BebenitaAffiliated withUniversity of California
  • , Mason ChangAffiliated withUniversity of California
  • , Andreas GalAffiliated withUniversity of California
  • , Michael FranzAffiliated withUniversity of California

* Final gross prices may vary according to local VAT.

Get Access

Abstract

Traditional just-in-time compilers operate at the granularity of methods. Compiling a method in such a compiler is an atomic operation that can require substantial amounts of processing time, resulting in execution pauses in interactive computing environments. We describe a new software architecture for dynamic compilers in which the granularity of compilation steps is much finer, forming a “pipeline” with completely linear runtime behavior, and in which there are only two write barriers. This means that on future many-core platforms, the compiler itself can be parallelized, providing high-throughput dynamic compilation without execution pauses. As our prototype for Java demonstrates, stream-based compilation lends itself very naturally to an object-oriented implementation.