Constraint Abstractions
Paper in proceeding, 2001

Many type based program analyses with subtyping, such as flow analysis, are based on inequality constraints over a lattice. When inequality constraints are combined with polymorphism it is often hard to scale the analysis up to large programs. A major source of inefficiency in conventional implementations stems from computing substitution instances of constraints. In this paper we extend the constraint language with constraint abstractions so that instantiation can be expressed directly in the constraint language and we give a cubic-time algorithm for constraint solving. As an application, we illustrate how a flow analysis with flow subtyping, flow polymorphism and flow-polymorphic recursion can be implemented in time where is the size of the explicitly typed program.

Author

Jörgen Gustavsson

Functional Programming

Josef Svenningsson

Functional Programming

Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

03029743 (ISSN) 16113349 (eISSN)

Vol. LNCS 2053 63-83

Subject Categories

Computer Science

DOI

10.1007/3-540-44978-7_5

More information

Created

10/6/2017