5 research outputs found
Unfolding for CHR programs
Program transformation is an appealing technique which allows to improve
run-time efficiency, space-consumption, and more generally to optimize a given
program. Essentially, it consists of a sequence of syntactic program
manipulations which preserves some kind of semantic equivalence. Unfolding is
one of the basic operations which is used by most program transformation
systems and which consists in the replacement of a procedure call by its
definition. While there is a large body of literature on transformation and
unfolding of sequential programs, very few papers have addressed this issue for
concurrent languages.
This paper defines an unfolding system for CHR programs. We define an
unfolding rule, show its correctness and discuss some conditions which can be
used to delete an unfolded rule while preserving the program meaning. We also
prove that, under some suitable conditions, confluence and termination are
preserved by the above transformation.
To appear in Theory and Practice of Logic Programming (TPLP)Comment: 49 page
Unfolding for CHR programs
Program transformation is an appealing technique which allows to improve run-time efficiency, space-consumption, and more generally to optimize a given program. Essentially, it consists of a sequence of syntactic program manipulations which preserves some kind of semantic equivalence. Unfolding is one of the basic operations used by most program transformation systems and consists of the replacement of a procedure call by its definition. While there is a large body of literature on the transformation and unfolding of sequential programs, very few papers have addressed this issue for concurrent languages. This paper defines an unfolding system for Constraint Handling Rules programs. We define an unfolding rule, show its correctness and discuss some conditions that can be used to delete an unfolded rule while preserving the program meaning. We also prove that, under some suitable conditions, confluence and termination are preserved by the above transformation