Unfolding -Definition -Folding, in this order, for avoiding unnecessary variables in logic programs

11Citations
Citations of this article
8Readers
Mendeley users who have this article in their library.
Get full text

Abstract

We take a syntactically based approach to the automatic improvement of performances of logic programs by using the unfold/fold transformation technique. A cause of program inefficiency is often the presence of variables which are unnecessary, in the sense that they force computations of redundant values or multiple visits of data structures. We propose a strategy which automatically transforms initial program versions into new efficient versions by avoiding unnecessary variables, Our strategy is an extension of the one which was introduced in an earlier paper [Proietti-Pettorossi 90]. It is based on the syntactical characterization of the unnecessary variables and the introduction of a composite transformation rule made out of unfolding-definition-folding steps, in this order. The strategy consists in the repeated application of this composite rule to each clause with unnecessary variables. It avoids the search for eureka definitions which is often required by other techniques proposed in the literature. We define a class of programs for which our transformation strategy is successful and we propose a variant of that strategy which uses the so-called Generalization Rule. This variant is always terminating, but, in general, not all unnecessary variables are eliminated.

References Powered by Scopus

Finite Differencing of Computable Expressions

191Citations
27Readers

Deforestation: Transforming programs to eliminate trees

119Citations
12Readers

Cited by Powered by Scopus

Preserving universal termination through unfold/fold

30Citations
N/AReaders
Get full text

Unfold/fold transformations for definite clause programs

24Citations
2Readers
Get full text

Tupling functions with multiple recursion parameters

15Citations
1Readers
Get full text

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Cite

CITATION STYLE

APA

Proietti, M., & Pettorossi, A. (1991). Unfolding -Definition -Folding, in this order, for avoiding unnecessary variables in logic programs. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 528 LNCS, pp. 347–358). Springer Verlag. https://doi.org/10.1007/3-540-54444-5_111

Readers over time

‘09‘10‘12‘13‘1900.751.52.253

Readers' Seniority

Tooltip

PhD / Post grad / Masters / Doc 4

57%

Professor / Associate Prof. 2

29%

Lecturer / Post doc 1

14%

Readers' Discipline

Tooltip

Computer Science 7

100%

Save time finding and organizing research with Mendeley

Sign up for free
0