Optimizing Ackermann's function by incrementalization

@inproceedings{Liu2003OptimizingAF,
  title={Optimizing Ackermann's function by incrementalization},
  author={Yanhong A. Liu and Scott D. Stoller},
  booktitle={PEPM '03},
  year={2003}
}
This paper describes a formal derivation of an optimized Ackermann's function following a general and systematic method based on incrementalization. The method identifies an appropriate input increment operation and computes the function by repeatedly performing an incremental computation at the step of the increment. This eliminates repeated subcomputations in executions that follow the straightforward recursive definition of Ackermann's function, yielding an optimized program that is… Expand
Program optimization using indexed and recursive data structures
TLDR
The method can derive all dynamic programming algorithms found in standard algorithm textbooks and is based on two critical ideas: determining a minimal input increment operation so as to compute a function on repeatedly incremented input. Expand
Optimizing the stack size of recursive functions
TLDR
This work found that in 70% of the benchmark functions, it is possible to reduce the stack size by declaring formal parameters and local variables global, and this was possible for all such benchmark functions. Expand
The Java Query Language by Darren Willis
This thesis describes JQL, an extension to Java which provides object querying. Object querying is an abstraction of operations over collections, including operations that combine multipleExpand
Automatic live memory bound analysis for high-level languages
TLDR
This analysis expresses the worst-case live heap space usage of a given list-manipulating program as an exact, not merely asymptotic, formula in the sizes of the inputs. Expand
Approximate Shortest Path Calculations in Simple Polyhedra
TLDR
The given algorithm solves approximately three NP-complete or NP-hard 3D ESP problems in time κ(e) · O(k), where k is the number of layers in a stack, which is introduced in this paper as being the problem environment. Expand
An approximate algorithm for solving shortest path problems for mobile robots or driver assistance
TLDR
This work states that the shortest path between two given locations Π is of importance for mobile robots, but also for identifying unique paths in a given surrounding region Π whenλ is given as a triangulated surface which is not necessary simply connected. Expand

References

SHOWING 1-10 OF 31 REFERENCES
Efficiency by Incrementalization: An Introduction
TLDR
This paper gives an overview of a general and systematic approach to incrementalization: given a program f and an operation ⊕, the approach yields an incremental program that computes f efficiently by using the result of f, the intermediate results of f), and auxiliary information of f(x) that can be inexpensively maintained. Expand
Bottom-Up Computation of Recursive Programs
  • G. Berry
  • Computer Science
  • RAIRO Theor. Informatics Appl.
  • 1976
TLDR
A mechanism for the implementation of recursive programs, called production mechanism by opposition to the usual recursion mechanism, which computes bottom-up, starting from the basic values given by halting conditions, and intermediate values leading to the resuit. Expand
Program optimization using indexed and recursive data structures
TLDR
The method can derive all dynamic programming algorithms found in standard algorithm textbooks and is based on two critical ideas: determining a minimal input increment operation so as to compute a function on repeatedly incremented input. Expand
Strengthening invariants for efficient computation
TLDR
A systematic approach is obtained that transforms non-incremental programs into efficient incremental programs that use and maintain useful auxiliary information as well as useful intermediate results. Expand
From recursion to iteration: what are the optimizations?
TLDR
This paper describes a powerful and systematic method, based on incrementalization, for transforming general recursion into iteration: identify an input increment, derive an incremental version under the input Incremental version, and form an iterative computation using the incremental version. Expand
Tabulation Techniques for Recursive Programs
TLDR
The advantages of tabulation as a technique of recursion elimination are explored through various programming examples, and a simple theorem quantifying the potential increase in efficiency is presented. Expand
Dynamic Programming via Static Incrementalization
TLDR
This paper describes a systematic method for transforming programs written as straightforward recursions into programs that use dynamic programming, based on incrementalization, which is more powerful and systematic than previous methods that perform memoization or tabulation. Expand
A bounds inference method for vector-based memoization
TLDR
A new inference method is proposed to conservatively determine the bounds for arithmetic parameters of recursive functions using lambda abstractions that may subsequently be converted to bounded vectors, in order to share redundant calls via vector lookup. Expand
Static caching for incremental computation
TLDR
The cache-and-prune method presented in the article consists of three stages: the original program is extended to cache the results of all its intermediate subcomputations as well as the final result, the extended program is incrementalized so that computation on a new input can use all intermediate results on an old input. Expand
Towards an automated tupling strategy
  • W. Chin
  • Computer Science
  • PEPM '93
  • 1993
TLDR
This work extends that of a number of past techniques which have used dependency graphs of function calls for analysing redundancy patterns by using the use of appropriate call orderings based on recursion parameters to systematically search for eureka tuples in dependency graphs. Expand
...
1
2
3
4
...