A new technique of program transformation, called “recursion introduction,” is described and applied to two algorithms which solve pattern matching problems. By using recursion introduction, algorithms which manipulate a stack are first translated into recursive algorithms in which no stack operations occur. These algorithms are then subjected to a second transformation, a method of recursion elimination called “tabulation,” to produce programs with a very efficient running time. In particular, it is shown how the fast linear pattern matching algorithm of Knuth, Morris, and Pratt can be derived in a few steps from a simple nonlinear stack algorithm. © 1977, ACM. All rights reserved.
CITATION STYLE
Bird, R. S. (1977). Improving Programs by the Introduction of Recursion. Communications of the ACM, 20(11), 856–863. https://doi.org/10.1145/359863.359889
Mendeley helps you to discover research relevant for your work.