Results 1 - 10
of
28
S-Semantics Approach: Theory and Applications
, 1994
"... The paper is a general overview of an approach to the semantics of logic programs whose aim is finding notions of models which really capture the operational semantics, and are therefore useful for defining program equivalences and for semantics-based program analysis. The approach leads to the intr ..."
Abstract
-
Cited by 110 (26 self)
- Add to MetaCart
The paper is a general overview of an approach to the semantics of logic programs whose aim is finding notions of models which really capture the operational semantics, and are therefore useful for defining program equivalences and for semantics-based program analysis. The approach leads to the introduction of extended interpretations which are more expressive than Herbrand interpretations. The semantics in terms of extended interpretations can be obtained as a result of both an operational (top-down) and a fixpoint (bottom-up) construction. It can also be characterized from the model-theoretic viewpoint, by defining a set of extended models which contains standard Herbrand models. We discuss the original construction modeling computed answer substitutions, its compositional version and various semantics modeling more concrete observables. We then show how the approach can be applied to several extensions of positive logic programs. We finally consider some applications, mainly in the area of semantics-based program transformation and analysis.
Meta-Programming in Logic Programming
- Handbook of Logic in Artificial Intelligence and Logic Programming
, 1994
"... data types are facilitated in Godel by its type and module systems. Thus, in order to describe the meta-programming facilities of Godel, a brief account of these systems is given. Each constant, function, predicate, and proposition in a Godel program must be specified by a language declaration. The ..."
Abstract
-
Cited by 43 (3 self)
- Add to MetaCart
data types are facilitated in Godel by its type and module systems. Thus, in order to describe the meta-programming facilities of Godel, a brief account of these systems is given. Each constant, function, predicate, and proposition in a Godel program must be specified by a language declaration. The type of a variable is not declared but inferred from its context within a particular program statement. To illustrate the type system, we give the language declarations that would be required for the program in Figure 1. BASE Name. CONSTANT Tom, Jerry : Name. PREDICATE Chase : Name * Name; Cat, Mouse : Name. Note that the declaration beginning BASE indicates that Name is a base type. In the statement Chase(x,y) !- Cat(x) & Mouse(y). the variables x and y are inferred to be of type Name. Polymorphic types can also be defined in Godel. They are constructed from the base types, type variables called parameters, and type constructors. Each constructor has an arity 1 attached to it. As an...
Conjunctive Partial Deduction: Foundations, Control, Algorithms, and Experiments
- J. LOGIC PROGRAMMING
, 1999
"... ..."
Transformations of CLP Modules
- Theoretical Computer Science
, 1995
"... We propose a transformation system for Constraint Logic Programming (CLP) programs and modules. The framework is inspired by the one of Tamaki and Sato for pure logic programs [37]. However, the use of CLP allows us to introduce some new operations such as splitting and constraint replacement. We pr ..."
Abstract
-
Cited by 25 (6 self)
- Add to MetaCart
We propose a transformation system for Constraint Logic Programming (CLP) programs and modules. The framework is inspired by the one of Tamaki and Sato for pure logic programs [37]. However, the use of CLP allows us to introduce some new operations such as splitting and constraint replacement. We provide two sets of applicability conditions. The first one guarantees that the original and the transformed programs have the same computational behaviour, in terms of answer constraints. The second set contains more restrictive conditions that ensure compositionality: we prove that under these conditions the original and the transformed modules have the same answer constraints also when they are composed with other modules. This result is proved by first introducing a new formulation, in terms of trees, of a resultants semantics for CLP. As corollaries we obtain the correctness of both the modular and the non-modular system w.r.t. the least model semantics. AMS Subject Classification (1991)...
A conceptual embedding of folding into partial deduction: Towards a maximal integration
, 1996
"... The relation between partial deduction and the unfold/fold approach has been a matter of intense discussion. In this paper we consolidate the advantages of the two approaches and provide an extended partial deduction framework in which most of the tupling and deforestation transformations of the fol ..."
Abstract
-
Cited by 25 (13 self)
- Add to MetaCart
The relation between partial deduction and the unfold/fold approach has been a matter of intense discussion. In this paper we consolidate the advantages of the two approaches and provide an extended partial deduction framework in which most of the tupling and deforestation transformations of the fold/unfold approach, as well the current partial deduction transformations, can be achieved. Moreover, most of the advantages of partial deduction, e.g. lower complexity and a more detailed understanding of control issues, are preserved. We build on well-defined concepts in partial deduction and present a conceptual embedding of folding into partial deduction, called conjunctive partial deduction. Two minimal extensions to partial deduction are proposed: using conjunctions of atoms instead of atoms as the principle specialisation entity and also renaming conjunctions of atoms instead of individual atoms. Correctness results for the extended framework (with respect to computed answer semantics and finite failure semantics) are given. Experiments with a prototype implementation are presented, showing that, somewhat to our surprise, conjunctive partial deduction not only handles the removal of unnecessary variables, but also leads to substantial improvements in specialisation for standard partial deduction examples. 1
On The Correctness Of Unfold/fold Transformation Of Normal And Extended Logic Programs
- JOURNAL OF LOGIC PROGRAMMING
, 1995
"... ..."
A Simple Code Improvement Scheme for Prolog
- Journal of Logic Programming
, 1992
"... The generation of efficient code for Prolog programs requires sophisticated code transformation and op-timization systems. Much of the recent work in this area has focussed on high level transformations, typi-cally at the source level. Unfortunately, such high level transformations suffer from the d ..."
Abstract
-
Cited by 23 (3 self)
- Add to MetaCart
The generation of efficient code for Prolog programs requires sophisticated code transformation and op-timization systems. Much of the recent work in this area has focussed on high level transformations, typi-cally at the source level. Unfortunately, such high level transformations suffer from the deficiency of be-ing unable to address low level implementational details. This paper presents a simple code improvement scheme that can be used for a variety of low level optimizations. Applications of this scheme are illustrat-ed using low level optimizations that reduce tag manipulation, dereferencing, trail testing, environment al-location, and redundant bounds checks. The transformation scheme serves as a unified framework for rea-soning about a variety of low level optimizations that have, to date, been dealt with in a more or less ad hoc manner.
A parameterized unfold/fold transformation framework for definite logic programs
- In Principles and Practice of Declarative Programming (PPDP), LNCS 1702
, 1999
"... Given a program P, an unfold/fold program transformation system derives a sequence of programs P = P0, P1,:::, Pn, such that Pi+1 is derived from Pi by application of either an unfolding or a folding step. Existing unfold/fold transformation systems for definite logic programs differ from one anoth ..."
Abstract
-
Cited by 21 (6 self)
- Add to MetaCart
Given a program P, an unfold/fold program transformation system derives a sequence of programs P = P0, P1,:::, Pn, such that Pi+1 is derived from Pi by application of either an unfolding or a folding step. Existing unfold/fold transformation systems for definite logic programs differ from one another mainly in the kind of folding transformations they permit at each step. Some allow folding using a single (possibly recursive) clause while others permit folding using multiple non-recursive clauses. However, none allow folding using multiple recursive clauses that are drawn from some previous program in the transformation sequence. In this paper we develop a parameterized framework for unfold/fold transformations by suitably abstracting and extending the proofs of existing transformation systems. Various existing unfold/fold transformation systems can be obtained by instantiating the parameters of the framework. This framework enables us to not only understand the relative strengths and limitations of these systems but also construct new transformation systems. Specifically we present a more general transformation system that permits folding using multiple recursive clauses that can be drawn from any previous program in the transformation sequence. This new transformation system is also obtained by instantiating our parameterized framework.
Partial Deduction of Disjunctive Logic Programs: A Declarative Approach
- In Logic Program Synthesis and Transformation -- Meta Programming in Logic, LNCS 883
, 1994
"... . This paper presents a partial deduction method for disjunctive logic programs. We first show that standard partial deduction in logic programming is not applicable as it is in the context of disjunctive logic programs. Then we introduce a new partial deduction technique for disjunctive logic progr ..."
Abstract
-
Cited by 19 (1 self)
- Add to MetaCart
. This paper presents a partial deduction method for disjunctive logic programs. We first show that standard partial deduction in logic programming is not applicable as it is in the context of disjunctive logic programs. Then we introduce a new partial deduction technique for disjunctive logic programs, and show that it preserves the minimal model semantics of positive disjunctive programs, and the stable model semantics of normal disjunctive programs. Goal-oriented partial deduction is also presented for query optimization. 1 Introduction Partial deduction or partial evaluation is known as one of the optimization techniques in logic programming. Given a logic program, partial deduction derives a more specific program through performing deduction on a part of the program, while preserving the meaning of the original program. Such a specialized program is usually more efficient than the original program when executed. Partial deduction in logic programming was firstly introduced by Kom...
Transformation of Left Terminating Programs: The Reordering Problem
- PROCEEDINGS LOPSTR'95, VOLUME 1048 OF LECTURE NOTES IN COMPUTER SCIENCE
, 1995
"... An Unfold/Fold transformation system is a source-to-source rewrit-ing methodology devised to improve the efficiency of a program. Any such transformation should preserve the main properties of the initial program: among them, termination. When dealing with logic programs such as PRO-LOG programs, on ..."
Abstract
-
Cited by 14 (3 self)
- Add to MetaCart
An Unfold/Fold transformation system is a source-to-source rewrit-ing methodology devised to improve the efficiency of a program. Any such transformation should preserve the main properties of the initial program: among them, termination. When dealing with logic programs such as PRO-LOG programs, one is particularly interested in preserving left termination i.e. termination wrt the leftmost selection rule, which is by far the most widely employed of the search rules. Unfortunately, the most popular Unfold/Fold transformation systems ([TS84, Sek91]) do not preserve the above termina-tion property. In this paper we study the reasons why left termination may be spoiled by the application of a transformation operation and we present a transformation system based on the operations of Unfold, Fold and Switch which- if applied to a left terminating programs- yields a program which is left terminating as well.

