30 citations found. Retrieving documents...
Maurizio Proietti and Alberto Pettorossi. Unfolding - Definition - Folding, in this order, for avoiding unnecessary variables in logic programs. In Proceedings of PLILP 91, Passau, Germany (LNCS 528), August 1991.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents

Sharing of Computations - Amtoft (1993)   (1 citation)  (Correct)

....af samme navn, som i juni 1993 blev accepteret til forsvar af PhD graden i datalogi ved Aarhus Universitet. Motivation I de senere ar har man arbejdet meget med at udvikle vrktjer til at gre programmer mere e#ektive. Af teknikker kan nvnes memoisering [Kho90] udfold fold transformationer [PP91b] graf baseret implementation af lazy evaluering [Jon87] og partiel evaluering [JSS89] At disse metoder forbedrer e#ektiviteten skyldes at nogle beregninger deles, sa de kun skal gres en gang. Imidlertid er forbindelsen mellem teknikkerne ikke klart forstaet, og det er heller ikke klart hvor ....

....from a major rewriting. Apart from that, only minor changes have been made. Introduction In the recent years a lot of work has been devoted to developing tools for transforming less e#cient programs into more e#cient programs. These include memoization [Kho90] unfold fold transformations [PP91b] graphbased implementation of lazy evaluation [Jon87] and partial evaluation [JSS89] The e#ciency improvement caused by these techniques all are due to the fact that some computations are shared, i.e. they only have to be done once. However, it is in no way clearly understood how these ....

[Article contains additional citation context not shown here]

Maurizio Proietti and Alberto Pettorossi. Unfolding - Definition - Folding, in this order, for avoiding unnecessary variables in logic programs. In Proceedings of PLILP 91, Passau, Germany (LNCS 528), pages 347--358, August 1991.


The Hyper System: Knowledge Reformation for Efficient .. - Prendinger.. (2000)   (2 citations)  (Correct)

....(preprocessing) phase we first isolate the portion of the first order KB that is relevant to answering some query type [8, 13] A query type p( X) is like a ground query such as p(a; b) but with all constants replaced by variables. Next, the KB is transformed via unfold fold transformation steps [16, 12]. Finally, the transformed theory is instantiated as a by product of constructing the query tree [8] The output of the off line phase is the ground (i.e. propositional) knowledge base KB 0 relevant to all instantiations p( c 1 ) p( c n ) of the query type that may have a solution with ....

....that have to be considered when answering a ground query. Since this claim is not experimentally supported in this paper, we have to refer the interested reader to the results in [8, 11] 4 Theory Transformation via Variable Elimination The motivation for applying unfold fold transformations [16, 12] is to reduce the complexity of a theory as measured by the number of possible ground instantiations of clauses. Since a clause C is exponential in the number n of different variables occurring in C, we try to minimize n. Theory transformation is an equivalence preserving form of transformation ....

[Article contains additional citation context not shown here]

Maurizio Proietti and Alberto Pettorossi. Unfolding---definition---folding, in this order, for avoiding unnecessary variables in logic programs. Theoretical Computer Science, 142:89--124, 1995.


Unfold/fold Transformations Preserving Termination Properties - Amtoft (1992)   (1 citation)  (Correct)

....transfer the ideas to other languages. 1 Introduction The unfold fold framework for program transformation dates back to (at least) BD77] and has since been the subject of much interest, primarily aimed at making the process of finding eureka definitions more systematic, e.g. Wad90] NN90] [PP91b]. Also supercompilation [Tur86] can be seen as a variant over the concept. A major problem with the technique is that one, due to too much folding , may risk that the program resulting from transformation (the target program) loops while the original (the source program) does not. A classical ....

....same result; whereas we will define total correctness to mean partial correctness together with the condition that if the target program does not terminate then neither does the source program. Whether a transformation process itself terminates is beyond the scope of this paper, but e.g. Wad90] [PP91b] address this problem for certain transformation strategies. For the related technique of partial evaluation (cf. JSS89] BD91] the problem of ensuring termination of the partial evaluation process is addressed in [Hol91] Upper bounds for the speedup possible by applying unfold fold ....

[Article contains additional citation context not shown here]

Maurizio Proietti and Alberto Pettorossi. Unfolding - Definition - Folding, in this order, for avoiding unnecessary variables in logic programs. In Proceedings of PLILP 91, Passau, Germany (LNCS 528), August 1991.


The Hyper System: Knowledge Reformation for Efficient .. - Prendinger.. (2000)   (2 citations)  (Correct)

....(preprocessing) phase wefirst isolate the portion of the first order KB that is relevant to answering some query type [8, 13] A query type p( X)islike a ground query suchasp(a# b) but with all constants replaced byvariables. Next, the KB is transformed via unfold fold transformation steps [16, 12]. Finally, the transformed theory is instantiated as a by product of constructing the query tree [8] The output of the off line phase is the ground (i.e. propositional) knowledge base KB 0 relevant to all instantiations p(c 1 )# : # p(c n ) of the query type that may haveasolution with ....

....a ground query. It is important to note that for acyclic T , factorizing can be done by only considering the query types p( X) and with tree structured T,even independentofaquerytype. 4 Theory Transformation via Variable Elimination The motivation for applying unfold fold transformations [16, 12] is to reduce the complexity of a theory as measured by the number of possible ground instantiations of clauses. Since a clause C is exponential in the number n of different variables occurring in C, we try to minimize n. Theory transformation is an equivalence preserving form of transformation ....

[Article contains additional citation context not shown here]

Maurizio Proietti and Alberto Pettorossi. Unfolding---definition---folding, in this order, for avoiding unnecessary variables in logic programs. Theoretical Computer Science, 142:89--124, 1995.


A New Means of Ensuring Termination of Deforestation With an.. - Sĝrensen (1993)   (2 citations)  (Correct)

....of this reservation, on going correspondence with Chin does seem to suggest that the simplified version is a reasonable core of his actual method. 2 The deforestation algorithm has also been invented in the Logic Programming community by Proietti and Pettorossi as the elimination procedure [Pro90, Pro91]. Their technique for ensuring termination is very similar to Chin s for deforestation. This suggests that it may be possible to find a technique extending Proietti and Pettorossi s similar to ours. Further, deforestation of functional programs is very similar to partial evaluation of logic ....

M.Proietti & A. Pettorossi. Unfolding - Definition - Folding, in this order for avoiding unnecessary variables in logic programs. In Proceedings of PLILP `91, LNCS 528. pp347-358, Passau, Germany, 1991.


Synchronisation Analysis to Stop Tupling - Chin, Khoo, Lee (1998)   (2 citations)  (Correct)

....function does not satisfy any of Cohen s algebraic properties, but can still be tupled by our method. Another approach is to perform direct search of the DG. Pettorossi [16] gave an informal heuristic to search the DG (dependency graph of calls) for eureka tuples. Later, Proietti Pettorossi [17] proposed an Elimination Procedure, which combines fusion and tupling, to eliminate unnecessary intermediate variables from logic programs. To ensure termination, they only handled functions with a single recursion parameter, while the accumulative parameters are generalised whenever possible. No ....

M. Proietti and A. Pettorossi. Unfolding - definition - folding, in this order for avoiding unnecessary variables in logic programs. In Proceedings of PLILP, Passau, Germany, (LNCS, vol 528, pp. 347--258) Berlin Heidelberg New York: Springer, 1991.


Better Consumers for Program Specializations - Chin, Khoo (1996)   (4 citations)  (Correct)

....set, ff M 1 ; f M m g, are nonincreasing. The basic idea of using a nonincreasing property to ensure termination of a specialization process was already present (in various forms) in a number of past works. In their Elimination Procedure for logic programs, Proietti and Pettorossi [PP91] made use of nonascending clauses to ensure terminating transformations. Similarly, Chin required parameters to be nonaccumulating for safe fusion transformation [Chi92] while Holst [Hol91] analyzed for 3 This is discussed further in Section 5.2.3. 12 The Journal of Functional and Logic ....

.... ys) G) arc(a; b; G) path 0 (b; ys; G) path 0 (b; Nil ; G) True path 0 (b; Cons(b1 ; ys1 ) G) arc(b; b1 ; G) path 0 (b1 ; ys1 ; G) The above safe specialization result is most similar to Proietti and Pettorossi s work based on nonascending clauses for logic programs [PP91]. Our approach concentrates on the consumers of each set of mutually recursive functions separately. In contrast, Proietti and Pettorossi s work simply considered the entire program as a single mutually recursive definition. This could cause slightly worse results, because variables at increased ....

M. Proietti and A. Pettorossi. Unfolding---definition---folding, in this order for avoiding unnecessary variables in logic programs. In Proceedings of Programming Language Implementation and Logic Programming, number 528 in Lecture Notes in Computer Science, pages 347--258, Berlin, Germany, 1991. Springer-Verlag.


Knowledge Base Reformation: Preparing First-Order.. - Prendinger, Ishizuka..   (Correct)

....of unfold fold 2 rules allows to reduce the number of possible instantiations of a clause. More specifically, theory transformation eliminates unnecessary variables, i.e. variables that occur in the body B but not in the head H of a clause H B (Tamaki and Sato [28] Proietti and Pettorossi [24]) Our approach is clearly inspired by the success of the planning as satisfiability approach of Kautz and Selman [10] where first order planning problems are encoded as propositional satisfiability problems. To obtain an efficient propositional representation, the encoding exploits specific ....

....Definition 3.1 A first order Horn theory T is called optimally reduced if no clause in T contains unnecessary variables. Obviously, the aim of theory transformation (as motivated here) will be to generate optimally reduced theories. Indeed, one algorithm described in Proietti and Pettorossi [24] eliminates all unnecessary variables as a result of the sequential application of unfolding, definition and folding steps. Unfortunately, the algorithm only terminates for very specific theories. More precisely, the procedures halt for theories that can be split into nonascending and tree like ....

[Article contains additional citation context not shown here]

Maurizio Proietti and Alberto Pettorossi. Unfolding---definition--- folding, in this order, for avoiding unnecessary variables in logic programs. Theoretical Computer Science, 142:89--124, 1995.


A System for Transforming Logic Programs - Renault (1997)   (1 citation)  (Correct)

....transformation rules are presented in Section 3. ffl automatic mode: the user selects a strategy which will automatically control the sequencing of the transformation rules to achieve some specific objectives. For instance, he may select the strategy for removing the unnecessary variables [11] occurring in the initial program. Thus, the the initial program is transformed, if the strategy terminates, into an equivalent program without unnecessary variables, by an automatic selection of the transformation rules at each step of the derivation. There are three strategies available, which ....

.... At the end of the derivation, the relation node 5 consists of the following facts: node(10,9, 13, fold, 1,6,4] 5) 14] 1,2,3,4,9,14] node(9,8, 10] 12, rep, 4,7] 3) 13] 1,2,3,4,9,13] node(8,7, 9] 11, rep, 7] 2) 12] 1,2,3,4,9,12] node(7,6, 8] 10, rep, 3,7] 1) [11]) 1,2,3,4,9,11] node(6,5, 7] 7, unf,4) 10] 1,2,3,4,9,10] node(5,4, 6] 8, unf,1) 9] 1,2,3,4,9,7] node(4,3, 5] 6, unf,1) 8] 1,2,3,4,8,7] node(3,2, 4] 5, unf,1) 6,7] 1,2,3,4,6,7] node(2,1, 3] def, 5] 1,2,3,4,5] node(1,0, 2] 0, 1,2,3,4] The current theory, which is ....

[Article contains additional citation context not shown here]

M. Proietti, A. Pettorossi. Unfolding-definition-folding, in this order, for avoiding unnecessary variables in logic programs. Theoretical Computer Science, 142(1):89--124, 1995.


Controlling Generalisation and Polyvariance in Partial .. - Leuschel, Martens, De .. (1997)   (12 citations)  (Correct)

....pressing. Recent work brought a closer integration of abstract interpretation and partial deduction [46] as well as an extension of partial deduction [43, 25] to incorporate more powerful unfold fold like transformations [57] allowing for example to eliminate unnecessary variables from programs [61]. The latter extension boils down to the lifting of entire goals (instead of separate atoms) to the global level, as for instance in supercompilation (where non atomic goals translate into nested function calls) This opens up a whole range of challenging new control issues. It turned out that the ....

M. Proietti and A. Pettorossi. Unfolding-definition-folding, in this order, for avoiding unnecessary variables in logic programs. In J. Ma/luszy'nski and M. Wirsing, editors, Proceedings of the 3rd International Symposium on Programming Language Implementation and Logic Programming, PLILP'91, LNCS 528, Springer Verlag, pages 347--358, 1991.


Preparing a First-order Knowledge Base for Fast Inference - Prendinger, Ishizuka (1999)   (Correct)

....and hence a smaller propositional theory. In order to reduce the number of clauses we will employ methods from relevance reasoning (Levy, Fikes, Sagiv 1997; Schurz 1998) whereas procedures from theory transformation are used to reduce the number of variables in clauses (Tamaki Sato 1984; Proietti Pettorossi 1995). Relevance reasoning allows to determine the part of the theory that does not contribute to a proof of a query or a set of queries. Theory transformation eliminates unnecessary variables, i.e. variables that occur in the body B but not in the head H of a clause (rule) H B. Theory ....

....new definition rule to D g; 3. Folding steps: for each clause E in UD add to T 0 the clause resulting from E as follows: for every block Bl of partbd(E) which is a faithful variant of a body of a clause N in D [N , fold Bl in E using N . D = DnfDg, N = N [ fDg g As opposed to the procedure of (Proietti Pettorossi 1995), the procedure is guaranteed to terminate. Example and Empirical Evaluation Since the speedup effect of relevance reasoning is already shown in (Levy, Fikes, Sagiv 1997) we will briefly discuss the efficiency gain of theory transformation. Let the theory T path consist of a following ....

Proietti, M., and Pettorossi, A. 1995. Unfolding--- definition---folding, in this order, for avoiding unnecessary variables in logic programs. Theoretical Computer Science 142:89--124.


Controlling Conjunctive Partial Deduction - Glück, Jĝrgensen, Martens.. (1996)   (Correct)

....then app(X 0 ; Y; T 0 ) app(T 0 ; Z; R 0 ) embeds app(Y; Z; R) and abstraction splits the conjunction app(X 0 ; Y; T 0 ) app(T 0 ; Z; R 0 ) into two separate atoms. Consequently, no optimisation is obtained. 5. 2 Rotate Prune Consider the rotate prune program, adopted from [28]: rotate(leaf(N) leaf(N) rotate(tree(L; N;R) tree(L 0 ; N;R 0 ) rotate(L; L 0 ) rotate(R; R 0 ) rotate(tree(L; N;R) tree(R 0 ; N;L 0 ) rotate(L; L 0 ) rotate(R; R 0 ) prune(leaf(N) leaf(N) prune(tree(L; 0; R) leaf(0) prune(tree(L; s(N) R) tree(L 0 ; ....

....goal rotate(T 1; U ) prune(U; T 2) first rotates and then prunes T1 by means of an intermediate variable U . The goal rp(T1; T 2) arising by the technique in Section 4, avoids the intermediate data structure and so is more efficient. This is equivalent to what unfold fold transformations can do [28]. rp(l(N) l(N) rp(t(L; 0; R) l(0) r(L) r(R) rp(t(L; s(N) R) t(L 0 ; s(N) R 0 ) rp(L; L 0 ) rp(R; R 0 ) rp(t(L; s(N) R) t(R 0 ; s(N) L 0 ) rp(L; L 0 ) rp(R; R 0 ) r(l(N) r(t(L; N;R) r(L) r(R) 6 Related Work Burstall and Darlington introduced ....

[Article contains additional citation context not shown here]

M. Proietti, A. Pettorossi. Unfolding -- definition -- folding, in this order for avoiding unnecessary variables in logic programs. In Programming Language Implementation and Logic Programming. LNCS 528, 347--358, Springer-Verlag, 1991.


Schema-Based Logic Program Transformation - Büyükyildiz (1997)   (Correct)

....a relation that is defined as the composition of two independent recursive relations into a program where a new relation is introduced, which does all the computations done by these two recursive relations. Unnecessary variable elimination is another technique, proposed by Proietti and Pettorossi [44], for deriving programs without unnecessary variables, and uses the predicate tupling strategy. A variable X of a clause C is unnecessary if at least one of the following two conditions holds [44] CHAPTER 2. BASIC CONCEPTS 34 ffl X occurs more than once in the body of C (in this case, X is a ....

....relations. Unnecessary variable elimination is another technique, proposed by Proietti and Pettorossi [44] for deriving programs without unnecessary variables, and uses the predicate tupling strategy. A variable X of a clause C is unnecessary if at least one of the following two conditions holds [44]: CHAPTER 2. BASIC CONCEPTS 34 ffl X occurs more than once in the body of C (in this case, X is a shared variable) ffl X does not occur in the head of C (in this case, X is an existential variable) The loop merging and the unnecessary variable elimination methods avoid multiple traversals ....

M. Proietti and A. Pettorossi. Unfolding-definition-folding, in this order, for avoiding unnecessary variables in logic programs. In: J. Maluszynski and M. Wirsing (eds), Proc. of PLILP'91, pp. 347--358. LNCS 528. Springer-Verlag, 1991.


A Roadmap to Metacomputation by Supercompilation - Glück, Sĝrensen (1996)   (4 citations)  (Correct)

....achieve deforestation. However, local variables in logic programs often represent intermediate data structures that could be removed by more sophisticated techniques. Partial deduction in logic programming is not capable of removing them; this requires an extension of the techniques, see e.g. [63, 54, 33]. Turchin s supercompiler [87] and our positive supercompiler are identical with respect to the propagation of positive information, except for certain trivial differences. The main difference between the two is that the former also maintains negative information, i.e. the information that a ....

M. Proietti and A. Pettorossi. Unfolding -- definition -- folding, in this order for avoiding unnecessary variables in logic programs. In Programming Language Implementation and Logic Programming, vol. 528 of LNCS, pp. 347--358. SpringerVerlag, 1991.


A Positive Supercompiler - Sørensen, Glück, Jones (1993)   (3 citations)  (Correct)

....deduction does something that corresponds, in the functional setting, to transforming the two calls to append independently, thereby preventing the intermediate data structure constructed by one call to be consumed by the other. Other transformers for logic programs can do this optimization, e.g. (Proietti and Pettorossi, 1991). 8.3 Other effects Positive supercompilation can invert functions just like interpreters for logic programs, and can be used for theorem proving and problem solving (Turchin, Nirenberg, and Turchin, 1982; Turchin, 1986) In general, to obtain these effects, the additional power of positive ....

Proietti, M. and Pettorossi, A. 1991. Unfolding - Definition - Folding, in this order for avoiding unnecessary variables in logic programs. In Programming Language Implementation and Logic Programming, Lecture Notes in Computer Science, Vol. 528, pages 347--358, Springer-Verlag.


Conjunctive Partial Deduction: Foundations.. - De Schreye.. (1994)   (Correct)

....can be understood in an unfold fold setting. Pettorossi and Proietti [62] describe a technique for partial deduction based on unfold fold rules. Their technique relies on a simple folding strategy involving no generalisation, so termination is not guaranteed. Similar approaches are described in [64, 65] (in [65] generalisation is present in the notion of minimal foldable upper portion of an unfolding tree) In the context of definite logic programs, partial deduction is a strict subset of the unfold fold transformation. In essence, partial deduction refers to the class of unfold fold ....

....differences between the unfold fold and partial deduction methods. One is that there is a large class of transformations which are achievable through unfold fold, but not through partial deduction. Typical instances of this class are transformations that eliminate redundant variables (see [62, 64]) For example, consider the following program for appending two lists. app( Ys; Ys) app( H jXs] Ys; H jZs] app(Xs; Ys; Zs) One way to append three lists is to use the goal app(Xs; Ys; T ) app(T ; Zs; R) which is simple and elegant, but inefficient to execute. Given Xs; Ys; Zs and ....

[Article contains additional citation context not shown here]

M. Proietti, A. Pettorossi. Unfolding -- definition -- folding, in this order, for avoiding unnecessary variables in logic programs. Theoretical Computer Science, 142(1):89--124, 1995.


Unfold/Fold Transformations For Definite Clause Programs - Manolis Gergatsoulis (1994)   (1 citation)  (Correct)

....In the context of logic programming, H. Tamaki and T. Sato [TS84, TS86] formulated unfold fold transformations for definite clause programs so as to preserve the equivalence of programs in the sense of the least Herbrand model semantics. Many transformation systems for program optimization [Deb88, PP91], program specialization [BCD90] partial evaluation [LS91, PP93] and program synthesis [Sat90, ST84] are based on unfold fold transformations. An unfold fold program transformation system which extends the unfold fold transformations of Tamaki and Sato [TS84] is presented in this paper. The ....

.... equality introduction rule widens the applicability of the folding rule. A proof of correctness of the transformations in the sense of the least Herbrand model semantics of the program is also presented. Besides the uses of Tamaki and Sato s transformations in optimization of logic programs [Deb88, PP91] and in program synthesis [ST84] the transformations that we propose may also be proved useful in optimization of nondeterministic logic programs as shown in the examples that we present. The application of This paper appears in the Proceedings of the Sixth International Symposium ....

M. Proietti and A. Pettorossi. Unfolding-definition-folding, in this order for avoiding unnecessary variables in logic programs. In J. Maluszinski and M. Wirsing, editors, LNCS no. 528, Proc. PLILP' 91, pages 347--358. Springer-Verlag, 1991.


Optimization of Mercury programs - Taylor (1998)   (3 citations)  (Correct)

....to store intermediate values. We present a deforestation algorithm which in many cases can remove these intermediate data structures, giving a result as efficient as if the programmer had specialized the composition by hand. Our deforestation algorithm is expressed as an unfold fold transformation [30]. Many other logic programming transformations can be expressed in this style. For example, constraint propagation transforms a program to reduce the search space by evaluating goals which could fail as early as possible. We give a simple extension of our deforestation algorithm to implement ....

....The aim of deforestation is to optimize programs which construct unnecessary intermediate data structures or perform multiple traversals of the same data structure. Several researchers have produced transformation techniques capable of performing deforestation for logic programming languages [13, 30]. The main problem to be solved for these techniques is to find heuristics to guide the transformation process to perform a useful amount of the possible optimization without causing code explosion. Here we present the details of an implementation of deforestation as an optimization pass within ....

[Article contains additional citation context not shown here]

Maurizio Proietti and Alberto Pettorossi. Unfolding-definition-folding, in this order, for avoiding unnecessary variables in logic programs. Theoretical Computer Science, 142(1):89--124, 1995.


Conjunctive Partial Deduction in Practice - Jørgensen, Leuschel.. (1996)   (Correct)

....occurring in these clauses. An important feature (in fact, a bug, one might say) lies in the fact that specialised clauses are produced for individual, separate atoms. As a consequence, partial deduction is unable to achieve typical transformations involving elimination of redundant variables [33, 34, 35], as exemplified by the query Partially supported by the HCM Network Logic Program Synthesis and Transformation , and partially by the Belgian GOA Non Standard Applications of Abstract Interpretation . Supported by the Belgian GOA Non Standard Applications of Abstract Interpretation ....

....conjunctive partial deduction proper. Some essentials are (mostly) informally recapitulated below; For a formal expos e, we refer to [22, 16, 23, 25] The resulting technique incorporates part of the unfold fold technology [7, 39, 30] and bears some relationship to automated methods proposed in [33, 34, 35]. It also approaches more closely techniques for the specialisation and transformation of functional programs, such as deforestation [42] and supercompilation [40, 36] Especially the latter constituted, together with unfold fold transformations, a source of inspiration for the conception and ....

[Article contains additional citation context not shown here]

M. Proietti and A. Pettorossi. Unfolding -- definition -- folding, in this order for avoiding unnecessary variables in logic programs. In Proceedings PLILP'91, pages 347--358. Springer-Verlag, LNCS 528, 1991.


Logic Program Specialisation: How To Be More Specific - Leuschel, De Schreye (1996)   (9 citations)  (Correct)

....able to extract the kind of information above. 4 The environment might be unknown for many reasons, e.g. due to abstraction or because part of the imperative program is unknown. 3. 2 Proving Functionality The following is a generalisation of the standard definition of functionality (see e.g. [27] or [4] Definition 3.1 We say that a predicate p defined by a program P is functional wrt the terms t 1 ; t h iff for every pair of atoms A = p(t 1 ; t h ; a 1 ; a k ) and B = p(t 1 ; t h ; b 1 ; b k ) we have that: ffl A; B has a correct answer iff ....

....syntactically identical calls preserves the correct answers for definite logic programs) Functionality is useful for many transformations, and is often vital to get superlinear speedups. For instance it is needed to transform the naive (exponential) Fibonacci program into a linear one (see e.g. [27]) It can also be used to produce more efficient code (see e.g. 4] Another example arises naturally from the store lookup code of the previous section. In a lot of cases, specialisation can be greatly improved if functionality of lookup(Key,Env,Val) wrt a given key Key and a given environment ....

M. Proietti and A. Pettorossi. Unfolding-definition-folding, in this order, for avoiding unnecessary variables in logic programs. In J. Ma/luszy'nski and M. Wirsing, editors, Proceedings of the 3rd International Symposium on Programming Language Implementation and Logic Programming, PLILP'91, LNCS 528, Springer Verlag, pages 347--358, 1991.


Transformation of Logic Programs - Pettorossi, Proietti (1998)   (13 citations)  Self-citation (Proietti Pettorossi)   (Correct)

....deforestation [ Feather, 1982; Wadler, 1990 ] and tupling [ Pettorossi, 1977 ] See also [ Feather, 1987; Partsch, 1990; Pettorossi and Proietti, 1996 ] for surveys. For logic programs two main methods have been considered: loop fusion [ Debray, 1988 ] and unnecessary variable elimination [ Proietti and Pettorossi, 1995 ] The aim of loop fusion is to transform a program which computes a predicate defined by the composition of two independent recursive predicates, into a program where the computations corresponding to these two predicates are performed by one predicate only. Using loop fusion one may avoid the ....

....recursive predicates, into a program where the computations corresponding to these two predicates are performed by one predicate only. Using loop fusion one may avoid the multiple traversal of data structures and the construction of intermediate data structures. The method presented in [ Proietti and Pettorossi, 1995 ] may be used for deriving programs without unnecessary variables. A variable X of a clause C is said to be unnecessary if at least one of the following two conditions holds: 1. X occurs more than once in the body of C (in this case we say that X is a shared variable) 2. X does not occur in the ....

M. Proietti and A. Pettorossi. Unfoldingdefinition -folding, in this order, for avoiding unnecessary variables in logic programs. Theoretical Computer Science, 142(1):89--124, 1995.


Flexible Continuations in Logic Programs via Unfold/Fold.. - Pettorossi, Proietti (1997)   Self-citation (Proietti Pettorossi)   (Correct)

....we allow for the introduction and the manipulation of goal variables. By using this extended set of rules, we may derive very efficient programs because during binarization we may also perform efficiency improving program transformations, such as, the elimination of intermediate data structures [2, 15, 21]. The introduction of continuations performed within this transformational framework, is said to be flexible for indicating that continuations are introduced neither at the beginning nor at the end of the transformation process, and instead, they are introduced during the transformation process ....

....We now turn to the problem of providing strategies that direct the application of the transformation rules so to improve program efficiency. It is impossible to define a universal strategy which improves program efficiency in all cases. Here we describe an enhancement of an existing strategy [15] for deriving binary programs without intermediate data structures. To this purpose we will apply a very useful technique which is goal generalization. In what follows the absence of intermediate data structures is formalized as the absence of unnecessary variables, that is, variables which occur ....

[Article contains additional citation context not shown here]

M. Proietti and A. Pettorossi. Unfolding-definition-folding, in this order, for avoiding unnecessary variables in logic programs. Theoretical Computer Science, 142(1):89--124, 1995.


Reducing Nondeterminism while Specializing Logic Programs - Pettorossi, Proietti (1997)   (12 citations)  Self-citation (Proietti Pettorossi)   (Correct)

.... Body in P k , where fX=tg is a substitution such that X occurs in H and X does not occur in the term t. We derive the program P k 1 by replacing C by the clause H X= t; Body. This rule is a particular case of the rule of generalization equality introduction considered, for instance, in [15]. R6. Case Split Rule. Let C be a clause in P k of the form: H Body . We perform case split of C w.r.t. fX=tg, thereby deriving P k 1 , by replacing C by the following two clauses: H Body)fX=tg and H X 6= t; Body , where X is a variable occurring in H and t is any term. R7. ....

....of conjunctions of goals and they generalize the one proposed for partial evaluation in [9] where only conjunctions of atoms are taken into consideration. The techniques presented in [9] recast in the style of Lloyd and Shepherdson s [12] those for the elimination of intermediate data structures [15], and these techniques neither can combine partial evaluations of alternative branches of the SLDNF trees, nor can introduce inequalities. Our definition and folding rules also allow us to factorize common computations in different branches of the SLDNF trees. In a sense this factorization ....

M. Proietti, A. Pettorossi. Unfolding-definition-folding, in this order, for avoiding unnecessary variables in logic programs. Theo. Comp. Sc., 142(1):89--124, 1995.


Unfold/fold Transformations Preserving Termination Properties - Amtoft (1992)   (1 citation)  (Correct)

No context found.

Maurizio Proietti and Alberto Pettorossi. Unfolding - Definition - Folding, in this order, for avoiding unnecessary variables in logic programs. In Proceedings of PLILP 91, Passau, Germany (LNCS 528), August 1991.


Redundant Argument Filtering of Logic Programs - Leuschel, Sĝrensen (1996)   (16 citations)  (Correct)

No context found.

M. Proietti and A. Pettorossi. Unfolding -- definition -- folding, in this order for avoiding unnecessary variables in logic programs. In Programming Language Implementation and Logic Programming, Lecture Notes in Computer Science 528, pages 347--358. Springer-Verlag, 1991.

First 50 documents

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC