Results 1 -
7 of
7
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.
Ensuring Global Termination of Partial Deduction while Allowing Flexible Polyvariance
, 1995
"... The control of polyvariance is a key issue in partial deduction of logic programs. Certainly, only finitely many specialised versions of any procedure should be generated, while, on the other hand, overly severe limitations should not be imposed. In this paper, well-founded orderings serve as a star ..."
Abstract
-
Cited by 59 (14 self)
- Add to MetaCart
The control of polyvariance is a key issue in partial deduction of logic programs. Certainly, only finitely many specialised versions of any procedure should be generated, while, on the other hand, overly severe limitations should not be imposed. In this paper, well-founded orderings serve as a starting point for tackling this so-called "global termination" problem. Polyvariance is determined by the set of distinct "partially deduced" atoms generated during partial deduction. Avoiding ad-hoc techniques, we formulate a quite general framework where this set is represented as a tree structure. Associating weights with nodes, we define a well-founded order among such structures, thus obtaining a foundation for certified global termination of partial deduction. We include an algorithm template, concrete instances of which can be used in actual implementations, prove termination and correctness, and report on the results of some experiments. Finally, we conjecture that the proposed framewor...
Logic program specialisation through partial deduction: Control issues
- THEORY AND PRACTICE OF LOGIC PROGRAMMING
, 2002
"... Program specialisation aims at improving the overall performance of programs by performing source to source transformations. A common approach within functional and logic programming, known respectively as partial evaluation and partial deduction, is to exploit partial knowledge about the input. It ..."
Abstract
-
Cited by 46 (12 self)
- Add to MetaCart
Program specialisation aims at improving the overall performance of programs by performing source to source transformations. A common approach within functional and logic programming, known respectively as partial evaluation and partial deduction, is to exploit partial knowledge about the input. It is achieved through a well-automated application of parts of the Burstall-Darlington unfold/fold transformation framework. The main challenge in developing systems is to design automatic control that ensures correctness, efficiency, and termination. This survey and tutorial presents the main developments in controlling partial deduction over the past 10 years and analyses their respective merits and shortcomings. It ends with an assessment of current achievements and sketches some remaining research challenges.
Specialising the ground representation in the logic programming language Gödel
- PROCEEDINGS OF LOPSTR 93
, 1994
"... Meta-programs form a class of logic programs of major importance. In the past it has proved very difficult to provide a declarative semantics for meta-programs in languages such as Prolog. These problems have been identified as largely being caused by the fact that Prolog fails to handle the necessa ..."
Abstract
-
Cited by 13 (0 self)
- Add to MetaCart
Meta-programs form a class of logic programs of major importance. In the past it has proved very difficult to provide a declarative semantics for meta-programs in languages such as Prolog. These problems have been identified as largely being caused by the fact that Prolog fails to handle the necessary representation requirements adequately. The ground representation is receiving increasing recognition as being necessary to adequately represent meta-programs. However, the expense it incurs has largely precluded its use to date. The logic programming language Gödel is a declarative successor to Prolog. Gödel provides considerable support for meta-programming, in the form of a ground repre-sentation. Using this representation, Gödel meta-programs have the advantage of having a declarative semantics and can be optimised by program specialisation, to execute in a time comparable to equivalent Prolog meta-programs which use a non-ground representation.
Partial evaluation in Prolog: Some improvements about cut
- Logic Programming: Proceedings of the North American Conference
, 1989
"... Two main aspects of Partial Evaluation for Prolog programs are considered: treatment of cuts and control of recursion. The analysis about cut is exhaustive: we consider occurrences of cut within both conjunctions and disjunctions. We show which restrictions are necessary to safely deal with cut in P ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
Two main aspects of Partial Evaluation for Prolog programs are considered: treatment of cuts and control of recursion. The analysis about cut is exhaustive: we consider occurrences of cut within both conjunctions and disjunctions. We show which restrictions are necessary to safely deal with cut in Partial Evaluation and which transformations are allowed. We define a set of conditions for compile-time execution and remotion of cuts. The safety of these conditions is formally proved. Some interesting results about the impact of mode inference techniques within this framework are finally drawn. As for control issues, we address a new approach to the problem of detecting infinite derivation paths. It is based on a theoretical characterization of non-termination and provides a general technique whose effectiveness does not depend on the structure of program domains. 1
Development of a Prolog Tracer by Stepwise Enhancement
- in: Proceedings of the Third International Conference on Practical Applications of Prolog
, 1995
"... A Prolog tracer is essentially a Prolog interpreter extended to provide features, such as retry, fail, leap, skip, and quasi-skip, to trace the computational flow of a program. This paper describes how a Prolog tracer may be built by stepwise enhancement. Using this method, first a collection of par ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
A Prolog tracer is essentially a Prolog interpreter extended to provide features, such as retry, fail, leap, skip, and quasi-skip, to trace the computational flow of a program. This paper describes how a Prolog tracer may be built by stepwise enhancement. Using this method, first a collection of partial-tracers are developed, each partial-tracer providing only a part of the tracer's functionality. The partial-tracers are then composed to yield a single tracer with the composite functionality of the partial-tracers. Stepwise enhancement provides an alternative to stepwise refinement and iterative enhancement in scenarios where the "natural" subproblems do not correspond to distinct subprograms. This typically happens, as in the case of a Prolog tracer, when different subprograms require the same program flow due to the contraint that their computations be performed simultaneously. Stepwise enhancement eases the development and extension of a tracer, and also makes it customizable. A use...

