Cast Insertion Strategies for Gradually-Typed Objects

Allende E.; Fabry, J; Tanter É.

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.

Más información

Título según WOS: Cast Insertion Strategies for Gradually-Typed Objects
Título según SCOPUS: Cast insertion strategies for gradually-typed objects
Título de la Revista: ACM SIGPLAN NOTICES
Volumen: 49
Número: 2
Editorial: ASSOC COMPUTING MACHINERY
Fecha de publicación: 2013
Página de inicio: 27
Página final: 35
Idioma: English
DOI:

10.1145/2508168.2508171

Notas: ISI, SCOPUS