Electronic Proceedings in Theoretical Computer Science (Aug 2017)

Transforming Coroutining Logic Programs into Equivalent CHR Programs

  • Vincent Nys,
  • Danny De Schreye

DOI
https://doi.org/10.4204/EPTCS.253.4
Journal volume & issue
Vol. 253, no. Proc. VPT 2017
pp. 9 – 35

Abstract

Read online

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.