Eliminating Redundant Recursive Calls.
ACM Transactions on Programming Languages and Systems (TOPLAS)
A fresh look at optimizing array bound checking
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Generalized partial computation for a lazy functional language
PEPM '91 Proceedings of the 1991 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A practical algorithm for exact array dependence analysis
Communications of the ACM
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Towards an automated tupling strategy
PEPM '93 Proceedings of the 1993 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A transformation method for dynamic-sized tabulation
Acta Informatica
Elimination of redundant array subscript range checks
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Proving the correctness of reactive systems using sized types
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Lisp and Symbolic Computation
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Tabulation Techniques for Recursive Programs
ACM Computing Surveys (CSUR)
A powerful strategy for deriving efficient programs by transformation
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
PEPM '00 Proceedings of the 2000 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Program optimization using indexed and recursive data structures
PEPM '02 Proceedings of the 2002 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Higher-Order and Symbolic Computation
Dynamic Programming via Static Incrementalization
Higher-Order and Symbolic Computation
Dynamic Programming via Static Incrementalization
ESOP '99 Proceedings of the 8th European Symposium on Programming Languages and Systems
Optimizing Ackermann's function by incrementalization
Proceedings of the 2003 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Program transformation by solving recurrences
Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Redundant Call Elimination via Tupling
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 2
Redundant Call Elimination via Tupling
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 2
Hi-index | 0.00 |
The dynamic-sized tabulation method can be used to eliminate redundant calls for certain classes of recursive programs. An innovative aspect of the method is the use of lambda abstractions that may subsequently be converted to bounded vectors, in order to share redundant calls via vector lookup.To facilitate this conversion to vector form, we propose a new inference method to conservatively determine the bounds for arithmetic parameters of recursive functions. Suitable techniques for inferring the safe bounds of these parameters are introduced, together with supporting transformations. The resulting method can obtain efficient vector-based programs without the need for run-time bounds checking.