Title: Transforming Coroutining Logic Programs into Equivalent CHR Programs,
Abstract: We extend a technique called Compiling Control. The technique transforms
coroutining logic programs into logic programs that, when executed under the
standard left-to-right selection rule (and not using any delay features) have
the same computational behavior as the coroutining program. In recent work, we
revised Compiling Control and reformulated it as an instance of Abstract
Conjunctive Partial Deduction. This work was mostly focused on the program
analysis performed in Compiling Control. In the current paper, we focus on the
synthesis of the transformed program. Instead of synthesizing a new logic
program, we synthesize a CHR(Prolog) program which mimics the coroutining
program. The synthesis to CHR yields programs containing only simplification
rules, which are particularly amenable to certain static analysis techniques.
The programs are also more concise and readable and can be ported to CHR
implementations embedded in other languages than Prolog.