Cast insertion strategies for gradually-typed objects

  • Authors:
  • Esteban Allende;Johan Fabry;Éric Tanter

  • Affiliations:
  • University of Chile, Santiago, Chile;University of Chile, Santiago, Chile;University of Chile, Santiago, Chile

  • Venue:
  • Proceedings of the 9th symposium on Dynamic languages
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

Gradual typing enables a smooth and progressive integration of static and dynamic typing. The semantics of a gradually-typed program is given by translation to an intermediate language with casts: runtime type checks that control the boundaries between statically- and dynamically-typed portions of a program. This paper studies the performance of different cast insertion strategies in the context of Gradualtalk, a gradually-typed Smalltalk. We first implement the strategy specified by Siek and Taha, which inserts casts at call sites. We then study the dual approach, which consists in performing casts in callees. Based on the observation that both strategies perform well in different scenarios, we design a hybrid strategy that combines the best of each approach. We evaluate these three strategies using both micro- and macro-benchmarks. We also discuss the impact of these strategies on memory, modularity, and inheritance. The hybrid strategy constitutes a promising cast insertion strategy for adding gradual types to existing dynamically-typed languages.