On strictness and its analysis
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automatic binding time analysis for a typed &lgr;-calculus
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Strictness analysis: a new perspective based on type inference
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Control-flow analysis of higher-order languages of taming lambda
Control-flow analysis of higher-order languages of taming lambda
Unboxed objects and polymorphic typing
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The type and effect discipline
Information and Computation
Dynamic typing: syntax and proof theory
ESOP'92 Selected papers of the symposium on Fourth European symposium on programming
A type system equivalent to flow analysis
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A unified treatment of flow analysis in higher-order languages
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Intersection type assignment systems
Selected papers of the thirteenth conference on Foundations of software technology and theoretical computer science
Linear-time subtransitive control flow analysis
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
A modular, polyvariant and type-based closure analysis
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Infinitary control flow analysis: a collecting semantics for closure analysis
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Higher-order value flow graphs
Nordic Journal of Computing
Polymorphic Binding-Time Analysis
ESOP '94 Proceedings of the 5th European Symposium on Programming: Programming Languages and Systems
A New Technique for Strictness Analysis
TAPSOFT '91 Proceedings of the International Joint Conference on Theory and Practice of Software Development, Volume 2: Advances in Distributed Computing (ADC) and Colloquium on Combining Paradigms for Software Developmemnt (CCPSD)
SAS '95 Proceedings of the Second International Symposium on Static Analysis
SAS '97 Proceedings of the 4th International Symposium on Static Analysis
Flobal Program Analysis in Constraint Form
CAAP '94 Proceedings of the 19th International Colloquium on Trees in Algebra and Programming
Strictness and Totality Analysis with Conjunction
TAPSOFT '95 Proceedings of the 6th International Joint Conference CAAP/FASE on Theory and Practice of Software Development
Control-Flow Analysis and Type Systems
SAS '95 Proceedings of the Second International Symposium on Static Analysis
Types, potency, and idempotency: why nonlinearity and amnesia make a type system work
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
Polyvariant flow analysis with higher-ranked polymorphic types and higher-order effect operators
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Control-flow analysis of functional programs
ACM Computing Surveys (CSUR)
Exact flow analysis by higher-order model checking
FLOPS'12 Proceedings of the 11th international conference on Functional and Logic Programming
Model Checking Higher-Order Programs
Journal of the ACM (JACM)
Hi-index | 0.00 |
We present a type-based flow analysis for simply typed lambda calculus with booleans, data-structures and recursion. The analysis is exact in the following sense: if the analysis predicts a redex, there exists a reduction sequence (using standard reduction plus context propagation rules) such that this redex will be reduced. The precision is accomplished using intersection typing.It follows that the analysis is non-elementary recursive – more surprisingly, the analysis is decidable. We argue that the specification of such an analysis provides a good starting point for developing new flow analyses and an important benchmark against which other flow analyses can be compared. Furthermore, we believe that the techniques employed for stating and proving exactness are of independent interest: they provide methods for reasoning about the precision of program analyses.A preliminary version of this paper has previously been published (Mossin 1997b). The present paper extends, elaborates and corrects this previously published abstract.