Get 20M+ Full-Text Papers For Less Than $1.50/day. Start a 14-Day Trial for You or Your Team.

Learn More →

Transforming acyclic programs

Transforming acyclic programs An unfold/fold transformation system is a source-to-source rewriting methodology devised to improve the efficiency of a program. Any such transformation should preserve the main properties of the initial program: among them, termination. In the field of logic programming, the class of acyclic programs plays an important role in this respect, since it is closely related to the one of terminating programs. The two classes coincide when negation is not allowed in the bodies of the clauses. We prove that the Unfold/Fold transformation system defined by Tamaki and Sato preserves the acyclicity of the initial program. From this result, it follows that when the transformation is applied to an acyclic program, then the finite failure set for definite programs is preserved; in the case of normal programs, all major declarative and operational semantics are preserved as well. These results cannot be extended to the class of left-terminating programs without modifying the definition of the transformation. http://www.deepdyve.com/assets/images/DeepDyve-Logo-lg.png ACM Transactions on Programming Languages and Systems (TOPLAS) Association for Computing Machinery

Loading next page...
 
/lp/association-for-computing-machinery/transforming-acyclic-programs-FRYzUTx8Ci

References (25)

Publisher
Association for Computing Machinery
Copyright
Copyright © 1994 by ACM Inc.
ISSN
0164-0925
DOI
10.1145/183432.183434
Publisher site
See Article on Publisher Site

Abstract

An unfold/fold transformation system is a source-to-source rewriting methodology devised to improve the efficiency of a program. Any such transformation should preserve the main properties of the initial program: among them, termination. In the field of logic programming, the class of acyclic programs plays an important role in this respect, since it is closely related to the one of terminating programs. The two classes coincide when negation is not allowed in the bodies of the clauses. We prove that the Unfold/Fold transformation system defined by Tamaki and Sato preserves the acyclicity of the initial program. From this result, it follows that when the transformation is applied to an acyclic program, then the finite failure set for definite programs is preserved; in the case of normal programs, all major declarative and operational semantics are preserved as well. These results cannot be extended to the class of left-terminating programs without modifying the definition of the transformation.

Journal

ACM Transactions on Programming Languages and Systems (TOPLAS)Association for Computing Machinery

Published: Jul 1, 1994

There are no references for this article.