Title
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 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.
Year
DOI
Venue
2009
10.1016/j.cl.2008.06.003
Computer Languages, Systems & Structures
Keywords
Field
DocType
static type system,static property,pluggable type,type third-party code,pluggable type system,dynamic language,limited type inference,different pluggable type system,type annotation,dynamic languages type systems programming languages,type system,programming language,programming languages
Uniqueness type,Type system,Void type,Programming language,Computer science,Complex data type,Smalltalk,Theoretical computer science,Type inference,Data type
Journal
Volume
Issue
ISSN
35
1
Computer Languages, Systems & Structures
Citations 
PageRank 
References 
10
0.67
10
Authors
3
Name
Order
Citations
PageRank
Niklaus Haldiman1141.11
Marcus Denker228523.94
Oscar Nierstrasz32404346.86