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.
Type de document :
Article dans une revue
Computer Languages, Systems and Structures, Elsevier, 2009, 35 (2), pp.48-64. 〈10.1016/〉
Liste complète des métadonnées

Littérature citée [22 références]  Voir  Masquer  Télécharger
Contributeur : Lse Lse <>
Soumis le : jeudi 13 janvier 2011 - 14:03:04
Dernière modification le : vendredi 25 mai 2018 - 11:26:02
Document(s) archivé(s) le : mardi 6 novembre 2012 - 11:25:22


Fichiers produits par l'(les) auteur(s)




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



Consultations de la notice


Téléchargements de fichiers