Improving programs by the introduction of recursion

  • Authors:
  • R. S. Bird

  • Affiliations:
  • Univ. of Reading, Reading, Berkshire, England

  • Venue:
  • Communications of the ACM
  • Year:
  • 1977

Quantified Score

Hi-index 48.22

Visualization

Abstract

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.