A theory of type polymorphism in programming

R Milner�- Journal of computer and system sciences, 1978 - Elsevier
R Milner
Journal of computer and system sciences, 1978Elsevier
The aim of this work is largely a practical one. A widely employed style of programming,
particularly in structure-processing languages which impose no discipline of types, entails
defining procedures which work well on objects of a wide variety. We present a formal type
discipline for such polymorphic procedures in the context of a simple programming
language, and a compile time type-checking algorithm W which enforces the discipline. A
Semantic Soundness Theorem (based on a formal semantics for the language) states that�…
The aim of this work is largely a practical one. A widely employed style of programming, particularly in structure-processing languages which impose no discipline of types, entails defining procedures which work well on objects of a wide variety. We present a formal type discipline for such polymorphic procedures in the context of a simple programming language, and a compile time type-checking algorithm W which enforces the discipline. A Semantic Soundness Theorem (based on a formal semantics for the language) states that well-type programs cannot “go wrong” and a Syntactic Soundness Theorem states that if W accepts a program then it is well typed. We also discuss extending these results to richer languages; a type-checking algorithm based on W is in fact already implemented and working, for the metalanguage ML in the Edinburgh LCF system.
Elsevier