Partial evaluation of pattern matching in strings
Information Processing Letters
Introduction to algorithms
Essence of generalized partial computation
Theoretical Computer Science - Images of programming dedicated to the memory of Andrei P. Ershov
Tight Bounds on the Complexity of the Boyer--Moore String Matching Algorithm
SIAM Journal on Computing
Rules and strategies for transforming functional and logic programs
ACM Computing Surveys (CSUR)
An introduction to partial evaluation
ACM Computing Surveys (CSUR)
A fast string searching algorithm
Communications of the ACM
On obtaining Knuth, Morris, and Pratt's string matcher by partial evaluation
ASIA-PEPM '02 Proceedings of the ASIAN symposium on Partial evaluation and semantics-based program manipulation
Program transformation system based on generalized partial computation
New Generation Computing - Partial evaluation and program transformation
Occam's Razor in Metacompuation: the Notion of a Perfect Process Tree
WSA '93 Proceedings of the Third International Workshop on Static Analysis
Fast partial evaluation of pattern matching in strings
Proceedings of the 2003 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
The abstraction and instantiation of string-matching programs
The essence of computation
WSDFU: program transformation system based on generalized partial computation
The essence of computation
Fast partial evaluation of pattern matching in strings
ACM Transactions on Programming Languages and Systems (TOPLAS)
On obtaining the Boyer-Moore string-matching algorithm by partial evaluation
Information Processing Letters
Hi-index | 0.00 |
This paper shows that Generalized Partial Computation (GPC) can automatically generate efficient string matching algorithms. GPC is a program transformation method utilizing partial information about input data and auxiliary functions as well as the logical structure of a source program. GPC uses both a classical partial evaluator and an inference engine such as a theorem prover to optimize programs. First, we show that a Boyer-Moore (BM) type pattern matcher without the bad-character heuristic can be generated from a simple non-linear backward matcher by GPC. This sort of problems has already been discussed in the literature using offline partial evaluators. However, there was no proof that every generated matcher runs in the same way as the BM. In this paper we prove that the problem can be solved starting from a simple non-linear pattern matcher as a source program. We also prove that a Knuth-Morris-Pratt (KMP) type linear string matcher can be generated from a naive non-linear forward matcher by GPC.