A New Technique for Strictness Analysis

Results from Unification Theory and type inference with coercions are combined to produce a new method for performing strictness analysis of functional programs. A formal deduction system is developed in which extended types are derivable for terms of the λ-calculus. These extended types contain Boolean rings describing the reduction behaviour of terms. Algorithms implementing the method are described, as well as proofs of their correctness. The method is extended to deal with recursion, polymorphism, and constants.

[1]  Mariangiola Dezani-Ciancaglini,et al.  A filter lambda model and the completeness of type assignment , 1983, Journal of Symbolic Logic.

[2]  Phil Wadfer,et al.  Strictness analysis on non-fiat domains (by abstract interpretation over finite domains) , 1985 .

[3]  John Hughes Projections for Polymorphic Strictness Analysis , 1989, Category Theory and Computer Science.

[4]  Tobias Nipkow,et al.  Boolean Unification - The Story So Far , 1989, J. Symb. Comput..

[5]  Geoffrey L. Burn A relationship between abstract interpretation and projection analysis , 1989, POPL '90.

[6]  Mitchell Wand,et al.  On the complexity of type inference with coercion , 1989, FPCA.

[7]  Prateek Mishra,et al.  Polymorphic Subtype Inference: Closing the Theory-Practice Gap , 1989, TAPSOFT, Vol.2.

[8]  Hans Leiß,et al.  Polymorphic Recursion and Semi-Unification , 1989, CSL.

[9]  John C. Mitchell,et al.  Coercion and type inference , 1984, POPL.

[10]  S. Peyton-jones,et al.  Implementation of Functional Languages , 1997, Lecture Notes in Computer Science.

[11]  John Hughes,et al.  Abstract Interpretation of Polymorphic Functions , 1989, Functional Programming.

[12]  Prateek Mishra,et al.  Type Inference with Subtypes , 1990, Theor. Comput. Sci..

[13]  J. A. Robinson,et al.  A Machine-Oriented Logic Based on the Resolution Principle , 1965, JACM.

[14]  Jan Willem Klop,et al.  Combinatory reduction systems , 1980 .

[15]  Paul Hudak,et al.  Higher-order strictness analysis in untyped lambda calculus , 1986, POPL '86.

[16]  Adrienne G. Bloss Update analysis and the efficient implementation of functional aggregates , 1989, FPCA.

[17]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

[18]  Philip Wadler,et al.  Projections for strictness analysis , 1987, FPCA.

[19]  Geoffrey Livingston Burn,et al.  Abstract interpretation and the parallel evaluation of functional languages , 1987 .

[20]  Harry G. Mairson Deciding ML typability is complete for deterministic exponential time , 1989, POPL '90.

[21]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[22]  Chris Hankin,et al.  Strictness Analysis for Higher-Order Functions , 1986, Sci. Comput. Program..

[23]  Jerzy Tiuryn,et al.  ML Typability is DEXTIME-Complete , 1990, CAAP.

[24]  Tsung-Min Kuo,et al.  Strictness analysis: a new perspective based on type inference , 1989, FPCA.

[25]  Jörg H. Siekmann,et al.  Unification theory , 1986, Decis. Support Syst..

[26]  Hendrik Pieter Barendregt,et al.  Needed Reduction and Spine Strategies for the Lambda Calculus , 1987, Inf. Comput..