Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Projections for strictness analysis
Proc. of a conference on Functional programming languages and computer architecture
Two-level semantics and abstract interpretation
Theoretical Computer Science
Transformations on higher-order functions
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Properties of data flow frameworks: a unified model
Acta Informatica
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Precise interprocedural dataflow analysis via graph reachability
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Least and greatest solutions of equations over N
Nordic Journal of Computing
Hi-index | 0.00 |
This paper provides a link between the formulation of static program analyses using the framework of abstract interpretation (popular for functional languages and using the more classical framework of data flow anlysis (popular for imperative languages). In particular we show how the classical notions of fastness, rapidity and k-boundedness carry over to the abstract interpretation framework and how this may be used to bound the number of times a functional should be unfolded in order to yield the fixed point. This is supplemented with a number of results on how to calculate the bounds for iterative forms (as for tail recursion), for linear forms (as for one nested recursive call), and for primitive recursive forms. In some cases this improves the “worst case” results of, but more importantly it gives much better“average case” results.