Results 11  20
of
31
Partial Structural Synthesis of Programs
, 1997
"... . The notion of partial deduction known from logic programming is defined in the framework of Structural Synthesis of Programs (SSP). Partial deduction for computability statements in SSP is defined. Completeness and correctness of partial deduction in the framework of SSP are proven. Several tactic ..."
Abstract

Cited by 22 (8 self)
 Add to MetaCart
. The notion of partial deduction known from logic programming is defined in the framework of Structural Synthesis of Programs (SSP). Partial deduction for computability statements in SSP is defined. Completeness and correctness of partial deduction in the framework of SSP are proven. Several tactics and stopping criteria are suggested. Keywords: Partial deduction, program synthesis 1. Introduction The main motivation for this work is to provide incremental formal program development in the framework of the proofasprograms approach (see, for instance, [3, 13]). In our case, it is Structural Synthesis of Programs (hence abbreviation SSP) which was developed by Tyugu [19] and his group. In SSP, a specification at hand is transformed into a set of formulae of a logical language complete with respect to intuitionistic propositional logic. A problem to be solved is formulated as a theorem to be proven in this logic. A program is then extracted from the proof of the theorem. This approach...
Constrained Partial Deduction and the Preservation of Characteristic Trees
 NEW GENERATION COMPUTING
, 1997
"... Partial deduction strategies for logic programs often use an abstraction operator to guarantee the finiteness of the set of goals for which partial deductions are produced. Finding an abstraction operator which guarantees finiteness and does not lose relevant information is a difficult problem. I ..."
Abstract

Cited by 21 (16 self)
 Add to MetaCart
Partial deduction strategies for logic programs often use an abstraction operator to guarantee the finiteness of the set of goals for which partial deductions are produced. Finding an abstraction operator which guarantees finiteness and does not lose relevant information is a difficult problem. In earlier work Gallagher and Bruynooghe proposed to base the abstraction operator on characteristic paths and trees, which capture the structure of the generated incomplete SLDNFtree for a given goal. In this paper we exhibit the advantages of characteristic trees over purely syntactical measures: if characteristic trees can be preserved upon generalisation, then we obtain an almost perfect abstraction operator, providing just enough polyvariance to avoid any loss of local specialisation. Unfortunately, the abstraction operators proposed in earlier work do not always preserve the characteristic trees upon generalisation. We show that this can lead to important specialisation losses as well as to nontermination of the partial deduction algorithm. Furthermore, this problem cannot be adequately solved in the ordinary partial deduction setting. We therefore extend the expressivity and precision of the Lloyd and Shepherdson partial deduction framework by integrating constraints. We provide formal correctness results for the so obtained generic framework of constrained partial deduction. Within this new framework we are, among others, able to overcome the above mentioned problems by introducing an alternative abstraction operator, based on so called pruning constraints. We thus present a terminating partial deduction strategy which, for purely determinate unfolding rules, induces no loss of local specialisation due to the abstraction while ensuring correctness o...
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 20 (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. Goaloriented 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...
Partial Deduction of the Ground Representation and its Application to Integrity Checking
 Proceedings of ILPS'95, the International Logic Programming Symposium
, 1995
"... Integrity constraints are very useful in many contexts, such as, for example, deductive databases, abductive and inductive logic programming. However, fully testing the integrity constraints after each update or modification can be very expensive and methods have been developed which simplify the in ..."
Abstract

Cited by 19 (12 self)
 Add to MetaCart
Integrity constraints are very useful in many contexts, such as, for example, deductive databases, abductive and inductive logic programming. However, fully testing the integrity constraints after each update or modification can be very expensive and methods have been developed which simplify the integrity constraints. In this paper, we pursue the goal of writing this simplification procedure as a metaprogram in logic programming and then using partial deduction to obtain precompiled integrity checks for certain update patterns. We argue that the ground representation has to be used to write this metaprogram declaratively. We however also show that, contrary to what one might expect, current partial deduction techniques are then unable to specialise this metainterpreter in an interesting way and no precompilation of integrity checks can be obtained. In fact, we show that partial deduction (alone) is not able to perform any (sophisticated) specialisation at the objectlevel for meta...
Creating Specialised Integrity Checks Through Partial Evaluation Of MetaInterpreters
, 1994
"... ..."
Improving Control in Functional Logic Program Specialization
, 1998
"... We have recently defined a framework for Narrowingdriven Partial Evaluation (NPE) of functional logic programs. This method is as powerful as partial deduction of logic programs and positive supercompilation of functional programs. Although it is possible to treat complex terms containing primitive ..."
Abstract

Cited by 18 (12 self)
 Add to MetaCart
We have recently defined a framework for Narrowingdriven Partial Evaluation (NPE) of functional logic programs. This method is as powerful as partial deduction of logic programs and positive supercompilation of functional programs. Although it is possible to treat complex terms containing primitive functions (e.g. conjunctions or equations) in the NPE framework, its basic control mechanisms do not allow for effective polygenetic specialization of these complex expressions. We introduce a sophisticated unfolding rule endowed with a dynamic narrowing strategy which permits flexible scheduling of the elements (in conjunctions) which are reduced during specialization. We also present a novel abstraction operator which carefully considers primitive functions and is the key to achieving accurate polygenetic specialization. The abstraction operator extends some recent partitioning techniques defined in the framework of conjunctive partial deduction. We provide experimental results obtained from an implementation using the INDY system which demonstrate that the control refinements produce better specializations.
Metaprogramming in Logic
 Encyclopedia of Computer Science and Technology
, 1994
"... In this review of metaprogramming in logic we pay equal attention to theoretical and practical issues: the contents range from mathematical and logical preliminaries to implementation and applications in, e.g., software engineering and knowledge representation. The area is one in rapid development b ..."
Abstract

Cited by 17 (0 self)
 Add to MetaCart
In this review of metaprogramming in logic we pay equal attention to theoretical and practical issues: the contents range from mathematical and logical preliminaries to implementation and applications in, e.g., software engineering and knowledge representation. The area is one in rapid development but we have emphasized such issues that are likely to be important for future metaprogramming languages and methodologies. 1 Introduction The term `metaprogramming' relates to `programming' as `metalanguage' relates to `language' and `metalogic' to `logic': programming where the data represent programs. It should be no surprise that metaprogramming with logic programming languages takes advantage of many results from metalogic. In the most general interpretation we would say that `metaprogramming ' refers to any kind of computer programming where the input or output represents programs. We will refer to a program of this kind as a metaprogram and to its data as object programs. Analogousl...
Specialising interpreters using offline partial deduction
 In Program Development in Computational Logic
, 2004
"... Abstract. We present the latest version of the logen partial evaluation system for logic programs. In particular we present new bindingtypes, and show how they can be used to effectively specialise a wide variety of interpreters. We show how to achieve Jonesoptimality in a systematic way for sever ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
Abstract. We present the latest version of the logen partial evaluation system for logic programs. In particular we present new bindingtypes, and show how they can be used to effectively specialise a wide variety of interpreters. We show how to achieve Jonesoptimality in a systematic way for several interpreters. Finally, we present and specialise a nontrivial interpreter for a small functional programming language. Experimental results are also presented, highlighting that the logen system can be a good basis for generating compilers for highlevel languages. 1
Intensional Query Answering by Partial Evaluation
, 1996
"... . Intensional query answering aims at providing a response to a query addressed to a knowledge base by making use of the intensional knowledge as opposed to extensional. Such a response is an abstract description of the conventional answer that can be of interest in many situations, for example it m ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
. Intensional query answering aims at providing a response to a query addressed to a knowledge base by making use of the intensional knowledge as opposed to extensional. Such a response is an abstract description of the conventional answer that can be of interest in many situations, for example it may increase the cooperativeness of the system, or it may replace the conventional answer in case access to the extensional part of the knowledge base is costly as for Mobile Systems. In this paper we present a general framework to generate intensional answers in knowledge bases adhering to the logic programming paradigm. Such a framework is based on a program transformation technique, namely Partial Evaluation, and allows for generating complete and procedurally complete (wrt SLDNFresolution) sets of intensional answers, treating both recursion and negation conveniently. Keywords: Knowledge bases, intensional query answering, logic programs, partial evaluation 1. Introduction Intensional an...