The Cartesian Product Algorithm: Simple and Precise Type Inference Of Parametric Polymorphism

  title={The Cartesian Product Algorithm: Simple and Precise Type Inference Of Parametric Polymorphism},
  author={Ole Agesen},
  • Ole Agesen
  • Published in ECOOP 1995
  • Computer Science
  • Concrete types and abstract types are different and serve different purposes. Concrete types, the focus of this paper, are essential to support compilation, application delivery, and debugging in object-oriented environments. Concrete types should not be obtained from explicit type declarations because their presence limits polymorphism unacceptably. This leaves us with type inference. Unfortunately, while polymorphism demands the use of type inference, it has also been the hardest challenge… CONTINUE READING
    234 Citations

    Figures and Tables from this paper

    Concrete type inference: delivering object-oriented applications
    • 79
    Augmenting Type Inference with Lightweight Heuristics
    • PDF
    Precise Constraint-Based Type Inference for Java
    • 84
    • PDF
    Efficient local type inference
    • 17
    Efficient Local Type Inference 3rd Year Project Report
    • PDF
    Exploiting Type Hints in Method Argument Names to Improve Lightweight Type Inference
    • 6
    • PDF
    Demand-Driven Type Inference with Subgoal Pruning
    • 10
    • PDF


    Precise concrete type inference for object-oriented languages
    • 156
    • Highly Influential
    Making Type Inference Practical
    • 121
    • Highly Influential
    Type Inference of SELF
    • 52
    Object-oriented type inference
    • 224
    • Highly Influential
    • PDF
    A Theory of Type Polymorphism in Programming
    • R. Milner
    • Computer Science
    • J. Comput. Syst. Sci.
    • 1978
    • 2,485
    • PDF
    Type checking and type inference for object-oriented programming languages
    • 50
    Constraint-Based Type Inference and Parametric Polymorphism
    • 66
    • PDF
    An efficient implementation of SELF, a dynamically-typed object-oriented language based on prototypes
    • 101
    Obtaining sequential efficiency for concurrent object-oriented languages
    • 43
    Self: The power of simplicity
    • 689