On the sequential nature of unification
Journal of Logic Programming
Miranda: a non-strict functional language with polymorphic types
Proc. of a conference on Functional programming languages and computer architecture
The categorical abstract machine
Proc. of a conference on Functional programming languages and computer architecture
Polymorphic type inference and containment
Information and Computation - Semantics of Data Types
Type inference and semi-unification
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A proper extension of ML with an effective type-assignment
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Machine-Oriented Logic Based on the Resolution Principle
Journal of the ACM (JACM)
An Efficient Unification Algorithm
ACM Transactions on Programming Languages and Systems (TOPLAS)
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Data Structures and Algorithms
Data Structures and Algorithms
Computers and Intractability: A Guide to the Theory of NP-Completeness
Computers and Intractability: A Guide to the Theory of NP-Completeness
Principal type-schemes for functional programs
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Word problems requiring exponential time(Preliminary Report)
STOC '73 Proceedings of the fifth annual ACM symposium on Theory of computing
Type inference in the presence of type abstraction
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Deciding ML typability is complete for deterministic exponential time
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
On the complexity of type inference with coercion
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
The complexity of type inference for higher-order lambda calculi
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The undecidability of the semi-unification problem
STOC '90 Proceedings of the twenty-second annual ACM symposium on Theory of computing
Type inference with polymorphic recursion
ACM Transactions on Programming Languages and Systems (TOPLAS)
Projection-propagation in complex-object query languages
CIKM '93 Proceedings of the second international conference on Information and knowledge management
Journal of the ACM (JACM)
In memoriam Paris C. Kanellakis
ACM Computing Surveys (CSUR)
In Memoriam: Paris C. Kanellakis
PCK50 Proceedings of the Paris C. Kanellakis memorial workshop on Principles of computing & knowledge: Paris C. Kanellakis memorial workshop on the occasion of his 50th birthday
Mathematical Structures in Computer Science
Analysis of imperative XML programs
Information Systems
Procedural code generation vs static expansion in modelling languages for constraint programming
CSCLP'09 Proceedings of the 14th Annual ERCIM international conference on Constraint solving and constraint logic programming
Hi-index | 0.00 |
We study the complexity of type inference for a core fragment of ML with lambda abstraction, function application, and the polymorphic let declaration. Our primary technical tool is the unification problem for a class of “polymorphic” type expressions. This form of unification, which we call polymorphic unification, allows us to separate a combinatorial aspect of type inference from the syntax of ML programs. After observing that ML typing is in DEXPTIME, we show that polymorphic unification is PSPACE hard. From this, we prove that recognizing the typable core ML programs is also PSPACE hard. Our lower bound stands in contrast to the common belief that typing ML programs is “efficient,” and to practical experience which suggests that the algorithms commonly used for this task do not slow compilation substantially.