Practical, Pluggable Types for a Dynamic Language - Inria - Institut national de recherche en sciences et technologies du numérique Access content directly
Journal Articles Computer Languages, Systems and Structures Year : 2009

Practical, Pluggable Types for a Dynamic Language

Abstract

Most languages fall into one of two camps: either they adopt a unique, static type system, or they abandon static type-checks for run-time checks. Pluggable types blur this division by (i) making static type systems optional, and (ii) supporting a choice of type systems for reasoning about different kinds of static properties. Dynamic languages can then benefit from static-checking without sacrificing dy- namic features or committing to a unique, static type system. But the overhead of adopting pluggable types can be very high, especially if all existing code must be decorated with type annotations before any type-checking can be performed. We propose a practical and pragmatic approach to introduce pluggable type systems to dynamic languages. First of all, only annotated code is type-checked. Second, limited type inference is performed on unannotated code to reduce the number of reported errors. Finally, external annotations can be used to type third-party code. We present TypePlug, a Smalltalk implementation of our framework, and report on experience applying the framework to three different pluggable type systems.
Fichier principal
Vignette du fichier
Hald08aTypeplug.pdf (246.52 Ko) Télécharger le fichier
Origin Files produced by the author(s)
Loading...

Dates and versions

inria-00555441 , version 1 (13-01-2011)

Identifiers

Cite

Niklaus Haldiman, Marcus Denker, Oscar Nierstrasz. Practical, Pluggable Types for a Dynamic Language. Computer Languages, Systems and Structures, 2009, 35 (2), pp.48-64. ⟨10.1016/j.cl.2008.06.003⟩. ⟨inria-00555441⟩

Collections

PHARO
42 View
187 Download

Altmetric

Share

Gmail Mastodon Facebook X LinkedIn More