Litcius/Paper detail

Polymorphic Type Inference for Dynamic Languages

Giuseppe Castagna, Mickaël Laurent, Kim Nguyễn

2024Proceedings of the ACM on Programming Languages11 citationsDOIOpen Access PDF

Abstract

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.

Topics & Concepts

SubtypingType inferenceIntersection (aeronautics)Programming languageType (biology)Computer scienceInferenceTheoretical computer scienceAlgorithmArtificial intelligenceEngineeringBiologyAerospace engineeringEcologyLogic, programming, and type systemsAdvanced Database Systems and Queriessemigroups and automata theory