Cast Insertion Strategies for Gradually-Typed Objects
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 dynamicallytyped
languages.
General note
Artículo de publicación ISi
Quote Item
ACM Volume 49 Issue 2, February 2014
Collections