Compiling structural types on the JVM: a comparison of reflective and generative techniques from Scala's perspective

  • Authors:
  • Gilles Dubochet;Martin Odersky

  • Affiliations:
  • École Polytechnique Fédérale de Lausanne;École Polytechnique Fédérale de Lausanne

  • Venue:
  • Proceedings of the 4th workshop on the Implementation, Compilation, Optimization of Object-Oriented Languages and Programming Systems
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

This article describes Scala's compilation technique of structural types for the JVM. The technique uses Java reflection and polymorphic inline caches. Performance measurements of this technique are presented and analysed. Further measurements compare Scala's reflective technique with the "generative" technique used by Whiteoak to compile structural types. The article ends with a comparison of reflective and generative techniques for compiling structural types. It concludes that generative techniques may, in specific cases, exhibit higher performances than reflective approaches, but that reflective techniques are easier to implement and have fewer restrictions.