Practical, Pluggable Types

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 dynamic 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.
Document type :
Conference papers
Complete list of metadatas

Cited literature [23 references]  Display  Hide  Download

https://hal.inria.fr/inria-00555783
Contributor : Lse Lse <>
Submitted on : Friday, January 14, 2011 - 2:17:35 PM
Last modification on : Friday, January 14, 2011 - 5:10:53 PM
Long-term archiving on : Tuesday, November 6, 2012 - 11:31:41 AM

File

Hald07b-Typeplug.pdf
Files produced by the author(s)

Identifiers

Citation

Niklaus Haldiman, Marcus Denker, Oscar Nierstrasz. Practical, Pluggable Types. 2007 International Conference on Dynamic Languages (ICDL 2007), ESUG, 2007, Lugano, Switzerland. pp.183-204, ⟨10.1145/1352678.1352690⟩. ⟨inria-00555783⟩

Share

Metrics

Record views

128

Files downloads

118