Results 1  10
of
42
SSemantics 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 semanticsbased program analysis. The approach leads to the intr ..."
Abstract

Cited by 126 (28 self)
 Add to MetaCart
(Show Context)
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 semanticsbased 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 (topdown) and a fixpoint (bottomup) construction. It can also be characterized from the modeltheoretic 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 semanticsbased program transformation and analysis.
Specialised Semantics of Logic Programs
 Theoretical Computer Science
, 1994
"... In this paper, we present a specialised semantics for logic programs. It is a generalization of the ssemantics [16] and it is intended to describe program behaviour whenever some constraints on procedure calls are assumed. Both operational and fixpoint constructions are defined. They characterize s ..."
Abstract

Cited by 72 (20 self)
 Add to MetaCart
In this paper, we present a specialised semantics for logic programs. It is a generalization of the ssemantics [16] and it is intended to describe program behaviour whenever some constraints on procedure calls are assumed. Both operational and fixpoint constructions are defined. They characterize successful derivations of programs where only atoms satisfying a given callcondition are selected. The concept of specialisable call correct (s.c.c., in short) program with respect to a given callcondition is introduced. We show that specialisable call correct programs can be transformed into callcorrect ones. A sufficient condition to verify specialisable call correctness is stated.
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, wellfounded orderings serve as a star ..."
Abstract

Cited by 67 (17 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, wellfounded orderings serve as a starting point for tackling this socalled "global termination" problem. Polyvariance is determined by the set of distinct "partially deduced" atoms generated during partial deduction. Avoiding adhoc techniques, we formulate a quite general framework where this set is represented as a tree structure. Associating weights with nodes, we define a wellfounded 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 67 (13 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 wellautomated application of parts of the BurstallDarlington 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.
MetaProgramming 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 metaprogramming 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 52 (3 self)
 Add to MetaCart
data types are facilitated in Godel by its type and module systems. Thus, in order to describe the metaprogramming 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...
Homeomorphic embedding for online termination of symbolic methods
 In The essence of computation, volume 2566 of LNCS
, 2002
"... Abstract. Wellquasi orders in general, and homeomorphic embedding in particular, have gained popularity to ensure the termination of techniques for program analysis, specialisation, transformation, and verification. In this paper we survey and discuss this use of homeomorphic embedding and clarify ..."
Abstract

Cited by 44 (7 self)
 Add to MetaCart
(Show Context)
Abstract. Wellquasi orders in general, and homeomorphic embedding in particular, have gained popularity to ensure the termination of techniques for program analysis, specialisation, transformation, and verification. In this paper we survey and discuss this use of homeomorphic embedding and clarify the advantages of such an approach over one using wellfounded orders. We also discuss various extensions of the homeomorphic embedding relation. We conclude with a study of homeomorphic embedding in the context of metaprogramming, presenting some new (positive and negative) results and open problems.
Legislation as logic programs
 In Logic Programming in Action
, 1992
"... The driving force behind logic programming is the idea that a single formalism suffices for both logic and computation, and that logic subsumes computation. But logic, as this series of volumes proves, is a broad church, with many denominations and communities, coexisting in varying degrees of harm ..."
Abstract

Cited by 40 (2 self)
 Add to MetaCart
(Show Context)
The driving force behind logic programming is the idea that a single formalism suffices for both logic and computation, and that logic subsumes computation. But logic, as this series of volumes proves, is a broad church, with many denominations and communities, coexisting in varying degrees of harmony. Computing is,
A SelfApplicable Partial Evaluator for the Logic Programming Language Godel
"... Partial evaluation is a program specialisation technique that has been shown to have great potential in logic programming, particularly for the specialisation of metainterpreters by the socalled “Futamura Projections”. Metainterpreters and other metaprograms are programs which use another progra ..."
Abstract

Cited by 40 (1 self)
 Add to MetaCart
(Show Context)
Partial evaluation is a program specialisation technique that has been shown to have great potential in logic programming, particularly for the specialisation of metainterpreters by the socalled “Futamura Projections”. Metainterpreters and other metaprograms are programs which use another program as data. In this thesis we describe a partial evaluator for metaprograms in the logic programming language Gödel. Gödel is a declarative, generalpurpose language which provides a number of higherlevel programming features, including extensive support for metaprogramming with a ground representation. The ground representation is a standard tool in mathematical logic in which object level variables are represented by ground terms at the metalevel. The ground representation is receiving increasing recognition as being essential for declarative metaprogramming, although the computational expense that it incurs has largely precluded its use in the past. This thesis extends the basic techniques of partial evaluation to the facilities of Gödel. Particular attention is given to the specialisation of the inherent overheads of metaprograms which use a ground representation and the foundations of a methodology for Gödel metaprograms are laid down. The soundness of the partial evaluation techniques is proved and these techniques are incorporated into a declarative partial evaluator. We describe the implementation and provide termination and correctness proofs for the partial evaluator SAGE, an automatic program specialiser based upon sound finite unfolding that is able to specialise any Gödel metaprogram (or indeed, any Gödel program at all). A significant illustration of the success of our techniques for specialising metaprograms which use a ground representation is provided by the selfapplication of this partial evaluator. We use the partial evaluator to specialise itself with respect to a range of metaprograms. By virtue of its selfapplicability SAGE has been used to produce a compilergenerator, which we believe shall prove to be an immensely powerful and useful tool for metaprogramming.