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.
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 |