Algorithm J
E807601
Algorithm J is a type inference algorithm used to automatically determine types in the Hindley–Milner type system.
Statements (29)
| Predicate | Object |
|---|---|
| instanceOf |
algorithm
ⓘ
type inference algorithm ⓘ |
| appliesTo | functional programming languages with Hindley–Milner types ⓘ |
| assumes | Hindley–Milner type discipline NERFINISHED ⓘ |
| basedOn | unification ⓘ |
| category | static analysis technique ⓘ |
| computes | most general unifier of type constraints ⓘ |
| constructs | type constraints ⓘ |
| ensures | principal type property under Hindley–Milner assumptions ⓘ |
| goal | determine types without explicit annotations ⓘ |
| handles |
polymorphic let-bindings
ⓘ
type schemes ⓘ type variables ⓘ |
| infers |
types of expressions
ⓘ
types of polymorphic functions ⓘ |
| input | untyped or partially typed program ⓘ |
| operatesOn | expressions in the Hindley–Milner type system ⓘ |
| output | typed program or type assignment ⓘ |
| performs | automatic type inference ⓘ |
| property |
completeness with respect to Hindley–Milner typing rules
ⓘ
soundness with respect to Hindley–Milner typing rules ⓘ |
| relatedTo | Algorithm W NERFINISHED ⓘ |
| solves | type constraints via unification ⓘ |
| supports | type inference ⓘ |
| usedFor |
checking type correctness
ⓘ
inferring principal types ⓘ |
| usedIn | Hindley–Milner type system NERFINISHED ⓘ |
| worksWith |
lambda calculus terms
ⓘ
let-polymorphism ⓘ |
Referenced by (1)
Full triples — surface form annotated when it differs from this entity's canonical label.