Polymorphic Type Inference for Dynamic Languages
Résumé
We present a type system that combines, in a controlled way, first-order polymorphism with intersection
types, union types, and subtyping, and prove its safety. We then define a type reconstruction algorithm that is
sound and terminating. This yields a system in which unannotated functions are given polymorphic types
(thanks to Hindley-Milner) that can express the overloaded behavior of the functions they type (thanks to
the intersection introduction rule) and that are deduced by applying advanced techniques of type narrowing
(thanks to the union elimination rule). This makes the system a prime candidate to type dynamic languages.
Origine | Fichiers produits par l'(les) auteur(s) |
---|