Results 1  10
of
14
SchemaBased Transformations of Logic Programs
 In Proceedings of the International Workshop on Logic Program Synthesis and Transformation (LoPSTr'92
, 1991
"... ion Selection Specialization P1/A1 Pn/An S1/G 1 Sn/G n S/G P/A 8 Abstraction For each program P i (i=1, ... , n) we identify a program schema S i which describes P i abstractly. This abstraction generates a set of substitutions q i for schema variables. The same abstraction leads from the lite ..."
Abstract

Cited by 33 (8 self)
 Add to MetaCart
ion Selection Specialization P1/A1 Pn/An S1/G 1 Sn/G n S/G P/A 8 Abstraction For each program P i (i=1, ... , n) we identify a program schema S i which describes P i abstractly. This abstraction generates a set of substitutions q i for schema variables. The same abstraction leads from the literals A i to the abstract literals G i . In short, the abstraction step replaces each term P i /A i by its abstraction S i /G i , and we have P i /A i = S i q i /G i q i . Selection Transformation schemata transform the set of abstract terms {S 1 /G 1 , ... , S n /G n } into an abstract term S/G, i.e. a transformation schema is defined as {S 1 /G 1 , ... , S n /G n, S/G}. In general there are several transformation schemata which have {S 1 /G 1 , ... , S n /G n } as input. We select the transformation schema which generates a desired output program schema S together with an abstract literal G. Specialization We apply the substitution q = q 1 ... q n to S/G to get the transformed pr...
Unfold/Fold Transformations For Definite Clause Programs
 In Proceedings of PLILP, LNCS 844
, 1994
"... . An unfold/fold program transformation system which extends the unfold/fold transformations of H. Tamaki and T. Sato is presented in this paper. The system consists of unfolding, simultaneous folding, and generalization + equality introduction rules. The simultaneous folding rule permits the foldin ..."
Abstract

Cited by 17 (5 self)
 Add to MetaCart
. An unfold/fold program transformation system which extends the unfold/fold transformations of H. Tamaki and T. Sato is presented in this paper. The system consists of unfolding, simultaneous folding, and generalization + equality introduction rules. The simultaneous folding rule permits the folding of a set of folded clauses into a single clause, using a set of folding clauses, while the generalization + equality introduction rule facilitates the application of the simultaneous folding rule by performing appropriate abstractions. A proof of the correctness of the proposed transformations in the sense of the least Herbrand model semantics of the program is also presented. 1 Introduction Unfold/fold transformations were first proposed by R. Burstall and J. Darlington [BD77] in the context of a functional language. 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...
A Constraintbased Partial Evaluator for Functional Logic Programs and its Application
, 1998
"... The aim of this work is the development and application of a partial evaluation procedure for rewritingbased functional logic programs. Functional logic programming languages unite the two main declarative programming paradigms. The rewritingbased computational model extends traditional functional ..."
Abstract

Cited by 12 (0 self)
 Add to MetaCart
The aim of this work is the development and application of a partial evaluation procedure for rewritingbased functional logic programs. Functional logic programming languages unite the two main declarative programming paradigms. The rewritingbased computational model extends traditional functional programming languages by incorporating logical features, including logical variables and builtin search, into its framework. This work is the first to address the automatic specialisation of these functional logic programs. In particular, a theoretical framework for the partial evaluation of rewritingbased functional logic programs is defined and its correctness is established. Then, an algorithm is formalised which incorporates the theoretical framework for the procedure in a fully automatic technique. Constraint solving is used to represent additional information about the terms encountered during the transformation in order to improve the efficiency and size of the residual programs. ...
Replacement Can Preserve Termination
"... We consider the replacement transformation operation, a very general and powerful transformation, and study under which conditions it preserves universal termination besides computed answer substitutions. With this safe replacement we can significantly extend the safe unfold/fold transformation sequ ..."
Abstract

Cited by 9 (3 self)
 Add to MetaCart
We consider the replacement transformation operation, a very general and powerful transformation, and study under which conditions it preserves universal termination besides computed answer substitutions. With this safe replacement we can significantly extend the safe unfold/fold transformation sequence presented in [11]. By exploiting typing information, more useful conditions can be defined and we may deal with some special cases of replacement very common in practice, namely switching two atoms in the body of a clause and the associativity of a predicate. This is a first step in the direction of exploiting a Pre/Post specification on the intended use of the program to be transformed. Such specification can restrict the instances of queries and clauses to be considered and then relax the applicability conditions on the transformation operations.
On Transformations into Linear Database Logic Programs
 Perspectives of Systems Informatics, 2nd International Andrei Ershov Memorial Conference, Akademgorodik
, 1996
"... Abstract. We consider the problem of transformations of logic programs without function symbols (database logic programs) into a special subclass, namely linear logic programs. Linear logic programs are dened to be the programs whose rules have at most one intentional atom in their bodies. a) We inv ..."
Abstract

Cited by 6 (5 self)
 Add to MetaCart
Abstract. We consider the problem of transformations of logic programs without function symbols (database logic programs) into a special subclass, namely linear logic programs. Linear logic programs are dened to be the programs whose rules have at most one intentional atom in their bodies. a) We investigate linearizability of several syntactically de ned subclasses of programs and present both positive and negative results (i.e. demonstrate programs that cannot be transformed into a linear program by any transformation technique), and b) We develop an algorithm which transforms any program in a speci c subclass namely the piecewise logic programs into a linear logic program.
Opportunistic Logic Program Analysis and Optimisation: Enhanced SchemaBased Transformations for Logic Programs and their Usage in an Opportunistic Framework for Program Analysis and Optimisation
 Technical Report 95.24, Institut fur Informatik, Universitat
, 1995
"... This paper should replace a previous work entitled Enhanced SchemaBased Transformations for Logic Programs and their Opportunistic Usage in Program Analysis and Optimisation (Technical Report 9516, Institut fr Informatik, Universitt Zrich), extending and updating it ..."
Abstract

Cited by 5 (4 self)
 Add to MetaCart
This paper should replace a previous work entitled Enhanced SchemaBased Transformations for Logic Programs and their Opportunistic Usage in Program Analysis and Optimisation (Technical Report 9516, Institut fr Informatik, Universitt Zrich), extending and updating it
Transformational Development of Logic Programs from Executable Specifications  SchemaBased Visual and Textual Composition of Logic Programs
, 1994
"... In our method  that we call Visual and Textual Composition of Logic Programs  we have enhanced the schemabased construction of logic programs in two ways intended to bridge the conceptual gap between application domains and the programming domain. First, we define visual and textual views of pr ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
In our method  that we call Visual and Textual Composition of Logic Programs  we have enhanced the schemabased construction of logic programs in two ways intended to bridge the conceptual gap between application domains and the programming domain. First, we define visual and textual views of programs that can be used to construct programs in applicationspecific concepts, and which can be understood as executable specifications of the programs being constructed. Second, in addition to schemata for Prolog programming constructs and techniques we introduce a repository of applicationspecific components. As a further enhancement of the method we have added schemabased transformations to increase the efficiency of the constructed programs. We have implemented both a program development system and a transformation system, and used these systems to develop programs for nontrivial applications like the wellknown library data base problem and an automated teller machine. 1 SchemaBase...
The branchingtime transformation technique for chain datalog programs
 Journal of Intelligent Information Systems
, 2001
"... Abstract. The branchingtime transformation technique has proven to be an e cient approach for implementing functional programming languages. In this paper we demonstrate that such a technique can also be de ned for logic programming languages. More speci cally, we rstintroduce Branching Datalog, a ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
Abstract. The branchingtime transformation technique has proven to be an e cient approach for implementing functional programming languages. In this paper we demonstrate that such a technique can also be de ned for logic programming languages. More speci cally, we rstintroduce Branching Datalog, a language that can be considered as the basis for branchingtemporal deductive databases. We then present a transformation algorithm from Chain Datalog programs to the class of unary Branching Datalog programs with at most one IDB atom in the body of each clause. In this way, we obtain a novel implementation approach for Chain Datalog, shedding at the same time new light on the power of branchingtime logic programming.
Program Transformations for Automated Verification of Parameterized Concurrent Systems
, 1999
"... We show how the problem of verifying parameterized systems can be reduced to the problem of determining the equivalence of goals in a logic program. We further show how goal equivalences can be established using inductionbased proofs. Such proofs rely on a powerful new theory of logic program trans ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
We show how the problem of verifying parameterized systems can be reduced to the problem of determining the equivalence of goals in a logic program. We further show how goal equivalences can be established using inductionbased proofs. Such proofs rely on a powerful new theory of logic program transformations (encompassing unfold, fold and goal replacement transformations). We present this theory of logic program transformations which in particular, allows a more general folding rule (as compared to the state of the art). We show how our more general transformations are useful for constructing verification proofs of parameterized systems. Moreover these verification proofs can be largely automated, and are applicable to a variety of network topologies, including uni and bidirectional chains, rings, and trees of processes. Unfold transformations in our system correspond to algorithmic modelchecking steps, fold and goal replacement correspond to deductve steps. All three types of transfo...
Automatic Derivation of Logic Programs by Transformation
 Course notes for ESSLLI
, 2000
"... We present the program transformation methodology for the automatic development of logic programs based on the rules + strategies approach. We consider both definite programs and normal programs and we present the basic transformation rules and strategies which are described in the literature. To il ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We present the program transformation methodology for the automatic development of logic programs based on the rules + strategies approach. We consider both definite programs and normal programs and we present the basic transformation rules and strategies which are described in the literature. To illustrate the power of the program transformation approach we also give some examples of program development. Finally, we show how to use program transformations for proving properties of predicates and synthesizing programs from logical specifications.