Making exhaustive search programs deterministic
New Generation Computing
Foundations of logic programming; (2nd extended ed.)
Foundations of logic programming; (2nd extended ed.)
Algorithms for finding patterns in strings
Handbook of theoretical computer science (vol. A)
Handbook of theoretical computer science (vol. B)
Software—Practice & Experience
Tutorial on specialisation of logic programs
PEPM '93 Proceedings of the 1993 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
String searching algorithms
Text algorithms
Future directions in program transformations
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
A fast string searching algorithm
Communications of the ACM
Logic for Problem Solving
Unfold/Fold Transformations For Definite Clause Programs
PLILP '94 Proceedings of the 6th International Symposium on Programming Language Implementation and Logic Programming
Enhancing Partial Deduction via Unfold/Fold Rules
LOPSTR '96 Proceedings of the 6th International Workshop on Logic Programming Synthesis and Transformation
Method of Programming, Selected Papers on the CIP-Project
Literate Program Derivation: A Case Study
Method of Programming, Selected Papers on the CIP-Project
Chain programs for writing deterministic metainterpreters
Theory and Practice of Logic Programming
The abstraction and instantiation of string-matching programs
The essence of computation
Disjunctive partial deduction of a right-to-left string-matching algorithm
Information Processing Letters
Fast partial evaluation of pattern matching in strings
ACM Transactions on Programming Languages and Systems (TOPLAS)
A taxonomy of some right-to-left string-matching algorithms
WFLP'09 Proceedings of the 18th international conference on Functional and Constraint Logic Programming
Hi-index | 0.00 |
Program transformation advocates the development of programs by applying a sequence of meaning-preserving rules to a specification, thereby obtaining an implementation. The cost of program development and maintenance decreases if previous, similar derivations can be reused conveniently Through the string-matching problem, we study the reuse of complete parts of the derivation of an algorithm, in the deriv ation of another, "similar" algorithm. In particular, we first derive the search stage of a variant of the Boyer--Moore algorithm, and then reuse some "dev elopments" in a derivation of the search stage of the Knuth-Morris-Pratt algorithm. Several advantages result from employing logic programming. First, we get the semantic benefit of having a logical basis. Second, we can easily exploit nondeterminism. Third, we link both deriv ations by observing that repetitive "deterministic" unfolding (i.e. sequences of unfolding steps that halt when more than one clause would be inferred) is closely related to the preprocessing stage of both algorithms.