Basic polymorphic typechecking
``Polymorphic means to have ``many forms. As related to programming languages, it refers to data or programs which have many types, or which operate on many types. In this paper we discuss Milner's polymorphic typechecking algorithm, which has proved very successful: it is sound, efficient, and supports a very rich and flexible type system. It was initially developed for the ML language, and has since been adopted by many other languages. One unique feature of Milner's algorithm is its ability to infer types in the absence of type declarations. This comes for free: in the attempt to deal with programs which can be reused on many types, the algorithm searches for the best (most abstract) type of a program. Such best type is independent of type declarations, which can only be used to reduce the generality of the most abstract type. The pragmatics of polymorphic typechecking has so far been restricted to a small group of people. In the hope of making the algorithm more widely accessible, we also include an implementation in the form of a Modula-2 program. Although clarity has sometimes been preferred to efficiency, this implementation is reasonably efficient and quite usable in practice for typechecking large programs.
- Polymorphic type inference and containment
- Type-checking multi-parameter type classes
- Polymorphic typed defunctionalization
- scientific article; zbMATH DE number 1678377
- Complete and easy bidirectional typechecking for higher-rank polymorphism
- Extending the type checker of Standard ML by polymorphic recursion
- Type inference in polymorphic type discipline
- scientific article; zbMATH DE number 4052993
- Type inference for polymorphic references
- A new type-checker for a functional language
- Inserting injection operations to denotational specifications
- Extending the type checker of Standard ML by polymorphic recursion
- Lower bounds on type checking overloading
- scientific article; zbMATH DE number 1678377 (Why is no real title available?)
- Type checking and problem of overloaded arguments
- Explaining Polymorphic Types
- Algorithm of construction of a type and its realization in the language W
- scientific article; zbMATH DE number 4155856 (Why is no real title available?)
- scientific article; zbMATH DE number 3898200 (Why is no real title available?)
- scientific article; zbMATH DE number 3907754 (Why is no real title available?)
- scientific article; zbMATH DE number 3928328 (Why is no real title available?)
- scientific article; zbMATH DE number 2043546 (Why is no real title available?)
- Efficient type checking for path polymorphism
- scientific article; zbMATH DE number 2154397 (Why is no real title available?)
- Quantifier elimination and parametric polymorphism in programming languages
- Weak polymorphism can be sound
- Polymorphic type-checking for the ramified theory of types of \textit{Principia mathematica}
- Polymorphic programming I. Another language designed on semantic principles
- Implementation of Functional Languages
- Formal verification of algorithm \(\mathcal{W}\): the monomorphic case
- Polymorphic types in ACL2
- Type inference for record concatenation and multiple inheritance
- Type inference with subtypes
This page was built for publication: Basic polymorphic typechecking
Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q580956)