Abstract
We show how a functional program for the Knuth-Morris-Pratt algorithm can be derived from a naive algorithm in a few transformation steps. Included also in an implementation technique for efficient memo-ization. The idea behind the transformation is simple but novel and specific to functional programming; we use partial parametrization of higher-order functions and memo-ization by data structures. Partial parametrization corresponds to precomputation, which is a common optimization technique in procedural programming, and memo-ization is similar to tabulation, which replaces an expensive computation by a simple table lookup. Mathematical reasoning is provided for the transformation rules.
Original language | English |
---|---|
Pages (from-to) | 522-528 |
Number of pages | 7 |
Journal | Journal of Information Processing |
Volume | 13 |
Issue number | 4 |
Publication status | Published - 1990 |