Results 1  10
of
26
Transformation of Logic Programs
 Handbook of Logic in Artificial Intelligence and Logic Programming
, 1998
"... Program transformation is a methodology for deriving correct and efficient programs from specifications. In this chapter, we will look at the so called 'rules + strategies' approach, and we will report on the main techniques which have been introduced in the literature for that approach, i ..."
Abstract

Cited by 34 (3 self)
 Add to MetaCart
Program transformation is a methodology for deriving correct and efficient programs from specifications. In this chapter, we will look at the so called 'rules + strategies' approach, and we will report on the main techniques which have been introduced in the literature for that approach, in the case of logic programs. We will also present some examples of program transformation, and we hope that through those examples the reader may acquire some familiarity with the techniques we will describe.
Unfold/fold transformations of CCP programs
 ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS
, 1998
"... We introduce a transformation system for concurrent constraint programming (CCP). We define suitable applicability conditions for the transformations which guarantee that the input/output CCP semantics is preserved also when distinguishing deadlocked computations from successful ones and when consid ..."
Abstract

Cited by 19 (5 self)
 Add to MetaCart
We introduce a transformation system for concurrent constraint programming (CCP). We define suitable applicability conditions for the transformations which guarantee that the input/output CCP semantics is preserved also when distinguishing deadlocked computations from successful ones and when considering intermediate results of (possibly) nonterminating computations. The system allows us to optimize CCP programs while preserving their intended meaning: In addition to the usual benefits that one has for sequential declarative languages, the transformation of concurrent programs can also lead to the elimination of communication channels and of synchronization points, to the transformation of nondeterministic computations into deterministic ones, and to the crucial saving of computational space. Furthermore, since the transformation system preserves the deadlock behavior of programs, it can be used for proving deadlock freeness of a given program with respect to a class of queries. To this aim it is sometimes sufficient to apply our transformations and to specialize the resulting program with respect to the given queries in such a way that the obtained program is trivially deadlock free.
Verifying CTL Properties of Infinite State Systems by Specializing Constraint Logic Programs
, 2001
"... this paper we assume that a system makes transitions from states to states and its evolution can be formalized using a computation tree which is dened as follows. Given a system S and its initial state s 0 , the root of the computation tree for S is s 0 , and every node s i of the computation tree f ..."
Abstract

Cited by 17 (11 self)
 Add to MetaCart
this paper we assume that a system makes transitions from states to states and its evolution can be formalized using a computation tree which is dened as follows. Given a system S and its initial state s 0 , the root of the computation tree for S is s 0 , and every node s i of the computation tree for S has a child node s j i there exists in S a transition from state s i to state s j , called a successor state of s i . The set of all states of a system may be nite or innite. We assume that in every system for every state s i there exists at least one successor state
Transformation Rules for Locally Stratified Constraint Logic Programs
, 2004
"... We propose a set of transformation rules for constraint logic programs with negation. We assume that every program is locally strati ed and, thus, it has a unique perfect model. We give sucient conditions which ensure that the proposed set of transformation rules preserves the perfect model of ..."
Abstract

Cited by 14 (13 self)
 Add to MetaCart
We propose a set of transformation rules for constraint logic programs with negation. We assume that every program is locally strati ed and, thus, it has a unique perfect model. We give sucient conditions which ensure that the proposed set of transformation rules preserves the perfect model of the programs. Our rules extend in some respects the rules for logic programs and constraint logic programs already considered in the literature and, in particular, they include a rule for unfolding a clause with respect to a negative literal.
A Transformation System for CLP with Dynamic Scheduling and CCP
 ACM{SIGPLAN Symposium on Partial Evaluation and Semantic Based Program Manipulation
, 1997
"... In this paper we study unfold/fold transformations for constraint logic programs (CLP) with dynamic scheduling and for concurrent constraint programming (CCP). We define suitable applicability conditions for these transformations which guarantee that the original and the transformed program have the ..."
Abstract

Cited by 11 (2 self)
 Add to MetaCart
In this paper we study unfold/fold transformations for constraint logic programs (CLP) with dynamic scheduling and for concurrent constraint programming (CCP). We define suitable applicability conditions for these transformations which guarantee that the original and the transformed program have the same results of successful derivations and the same deadlock free queries. The possible applications of these results are twofold. On one hand we can use the unfold/fold system to optimize CLP and CCP programs while preserving their intended meaning and in particular without the risk of introducing deadlocks. On the other hand, unfold/fold transformations can be used for proving deadlock freeness of a class of queries in a given program: to this aim it is sufficient to apply our transformations and to specialize the resulting program with respect to the given queries in such a way that the obtained program is trivially deadlock free. As shown by several interesting examples, this yields a methodology for proving deadlock freeness which is simple and powerful at the same time.
Automated Strategies for Specializing Constraint Logic Programs
 LOPSTR 2000, LNCS 2042
"... We consider the problem of specializing constraint logic programs w.r.t. constrained queries. We follow a transformational approach based on rules and strategies. The use of the rules ensures that the specialized program is equivalent to the initial program w.r.t. a given constrained query. The stra ..."
Abstract

Cited by 9 (7 self)
 Add to MetaCart
We consider the problem of specializing constraint logic programs w.r.t. constrained queries. We follow a transformational approach based on rules and strategies. The use of the rules ensures that the specialized program is equivalent to the initial program w.r.t. a given constrained query. The strategies guide the application of the rules so to derive an efficient specialized program. In this paper we address various issues concerning the development of an automated transformation strategy. In particular, we consider the problems of when and how we should unfold, replace constraints, introduce generalized clauses, and apply the contextual constraint replacement rule. We propose a solution to these problems by adapting to our framework various techniques developed in the field of constraint programming, partial evaluation, and abstract interpretation. In particular, we use: (i) suitable solvers for simplifying constraints, (ii) wellquasiorders for ensuring the termination...
Specialization with Clause Splitting for Deriving Deterministic Constraint Logic Programs
 In Proc. IEEE Conference on Systems, Man and Cybernetics, Hammamet
, 2002
"... The reduction of nondeterminism can increase efficiency when specializing programs. We consider constraint logic programs and we propose a technique which by making use of a new transformation rule, called clause splitting, allows us to generate efficient, specialized programs which are deterministi ..."
Abstract

Cited by 5 (5 self)
 Add to MetaCart
The reduction of nondeterminism can increase efficiency when specializing programs. We consider constraint logic programs and we propose a technique which by making use of a new transformation rule, called clause splitting, allows us to generate efficient, specialized programs which are deterministic. We have applied our technique to the specialization of pattern matching programs.
Transformation of Constraint Logic Programs for Software Specialization and Verification
, 2002
"... ..."
Program Derivation = Rules + Strategies
 Computational Logic: Logic Programming and Beyond (Essays in honour of Bob Kowalski, Part I), Lecture Notes in Computer Science 2407
, 2001
"... In a seminal paper [38] Prof. Robert Kowalski advocated the paradigm Algorithm = Logic + Control which was intended to characterize program executions. Here we want to illustrate the corresponding paradigm Program Derivation = Rules + Strategies which is intended to characterize program derivations, ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
In a seminal paper [38] Prof. Robert Kowalski advocated the paradigm Algorithm = Logic + Control which was intended to characterize program executions. Here we want to illustrate the corresponding paradigm Program Derivation = Rules + Strategies which is intended to characterize program derivations, rather than executions. During program execution, the Logic component guarantees that the computed results are correct, that is, they are true facts in the intended model of the given program, while the Control component ensures that those facts are derived in an efficient way. Likewise, during program derivation, the Rules component guarantees that the derived programs are correct and the Strategies component ensures that the derived programs are efficient.