Basic polymorphic typechecking
type: Item
instance of: scholarly article
title: Basic polymorphic typechecking
zbMATH Open document ID: 0626.68009
DOI: 10.1016/0167-6423(87)90019-0
author: Luca Cardelli
published in: Science of Computer Programming
publication date: 1987-01-01T00:00:00Z
review text: ``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.
Mathematics Subject Classification ID: 68P05
Mathematics Subject Classification ID: 68Q60
Mathematics Subject Classification ID: 68N01
zbMATH DE Number: 4018357
zbMATH Keywords: Milner's polymorphic typechecking algorithm
zbMATH Keywords: ML language
zbMATH Keywords: Modula-2
Wikidata QID: Q56982327
MaRDI profile type: Publication
full work available at URL: 0167-6423(87)90019-0
OpenAlex ID: W2133472914
Recommended article: Polymorphic type inference and containment
Recommended article: Type-checking multi-parameter type classes
Recommended article: Polymorphic typed defunctionalization
Recommended article: Q2757829
Recommended article: Complete and easy bidirectional typechecking for higher-rank polymorphism
Recommended article: Extending the type checker of Standard ML by polymorphic recursion
Recommended article: Type inference in polymorphic type discipline
Recommended article: Q3789049
Recommended article: Type inference for polymorphic references
description: scientific article; zbMATH DE number 4018357