Results 1 - 10
of
19
Specialization of Inductively Sequential Functional Logic Programs
, 1999
"... Functional logic languages combine the operational principles of the most important declarative programming paradigms, namely functional and logic programming. Inductively sequential programs admit the definition of optimal computation strategies and are the basis of several recent (lazy) functional ..."
Abstract
-
Cited by 21 (11 self)
- Add to MetaCart
Functional logic languages combine the operational principles of the most important declarative programming paradigms, namely functional and logic programming. Inductively sequential programs admit the definition of optimal computation strategies and are the basis of several recent (lazy) functional logic languages. In this paper, we define a partial evaluator for inductively sequential functional logic programs. We prove strong correctness of this partial evaluator and show that the nice properties of inductively sequential programs carry over to the specialization process and the specialized programs. In particular, the structure of the programs is preserved by the specialization process. This is in contrast to other partial evaluation methods for functional logic programs which can destroy the original program structure. Finally, we present some experiments which highlight the practical advantages of our approach. 1 Introduction Functional logic languages combine the operational p...
Specialization of Functional Logic Programs Based on Needed Narrowing
- Proc. of ICFP'99
, 1999
"... Functional logic languages with a complete operational semantics are based on narrowing, a unification-based goal-solving mechanism which subsumes the reduction principle of functional languages and the resolution principle of logic languages. Needed narrowing is an optimal narrowing strategy and th ..."
Abstract
-
Cited by 14 (9 self)
- Add to MetaCart
Functional logic languages with a complete operational semantics are based on narrowing, a unification-based goal-solving mechanism which subsumes the reduction principle of functional languages and the resolution principle of logic languages. Needed narrowing is an optimal narrowing strategy and the basis of several recent functional logic languages. In this paper, we define a partial evaluator for functional logic programs based on needed narrowing. We prove strong correctness of this partial evaluator and show that the nice properties of needed narrowing carry over to the specialization process and the specialized programs. In particular, the structure of the specialized programs provides for the application of optimal evaluation strategies. This is in contrast to other partial evaluation methods for functional logic programs which can change the original program structure in a negative way. Finally, we present some experiments which highlight the practical advantages of our approach.
Therapy Plan Generation in Complex Dynamic Environments
, 1994
"... There has been developed a methodology for the automatic synthesis of therapy plans for complex dynamic systems. An algorithm has been implemented and testet. This is the core of some control synthesis module which is embedded in a larger knowledge-based system for control, diagnosis and therapy. Th ..."
Abstract
-
Cited by 12 (12 self)
- Add to MetaCart
There has been developed a methodology for the automatic synthesis of therapy plans for complex dynamic systems. An algorithm has been implemented and testet. This is the core of some control synthesis module which is embedded in a larger knowledge-based system for control, diagnosis and therapy. There are several applications. The approach is based on certain concepts of structured graphs. The overall search space is a family of hierarchically structured plans. Together with some goal specification it is forming a so-called rooted family. Simple concepts of graph substitution and rewriting are introduced. The output of the planner is a hierarchically structured plan. This has a uniquely determined normal form taken for execution. Plan generation is interpreted as inductive program synthesis. Indeed, the planner developed and implemented works as an inductive inference machine. It turns out that consistency and executability are two fundamental, but distinguished concepts. When describ...
Therapy Plan Generation as Program Synthesis
- In Setsuo Arikawa and K.P. Jantke, editors, Algorithmic Learning Theory, AII'94 & ALT'94, volume 872 of LNAI
, 1994
"... . There has been developed and implemented an algorithm for the automatic synthesis of therapy plans for complex dynamic systems. This algorithm is the core of some control synthesis module which is embedded in a larger knowledge-based system for control, diagnosis and therapy. There are several app ..."
Abstract
-
Cited by 12 (10 self)
- Add to MetaCart
. There has been developed and implemented an algorithm for the automatic synthesis of therapy plans for complex dynamic systems. This algorithm is the core of some control synthesis module which is embedded in a larger knowledge-based system for control, diagnosis and therapy. There are several applications. The planning algorithm may be understood as an inductive program synthesis procedure. Its fundamentals are introduced and its key ideas are sketched. The dichotomy between executability and consistency is investigated. 1 Motivation and Introduction The main intention of the present paper is to establish a new link between two areas of research: Program Synthesis and Therapy Planning. Thus, the authors wish to advance both areas of research they are active in. For program synthesis, the intended integration may result in new and exciting problems characterized by particular constraints not investigated in the classical approaches, so far. Our approach may widen the view at automat...
Compiler Generation for Interactive Graphics using Intermediate Code
- In Dagstuhl Workshop on Partial Evaluation (LNCS1110
, 1996
"... . This paper describes a compiler generator (cogen) designed for interactive graphics, and presents preliminary results of its application to pixel-level code. The cogen accepts and produces a reflective intermediate code in continuationpassing, closure-passing style. This allows low overhead run-ti ..."
Abstract
-
Cited by 11 (0 self)
- Add to MetaCart
. This paper describes a compiler generator (cogen) designed for interactive graphics, and presents preliminary results of its application to pixel-level code. The cogen accepts and produces a reflective intermediate code in continuationpassing, closure-passing style. This allows low overhead run-time code generation as well as multi-stage compiler generation. We extend partial evaluation techniques by allowing partially static integers, conservative early equality, and unrestricted lifting. In addition to some standard examples, we examine graphics kernels such as one-dimensional finite filtering and packed pixel access. 1 Introduction Interactive graphics is a growing application domainwhere the demands of latency, bandwidth, and software engineering collide. The state of the art, represented by systems such as QuickDrawGX(R) [44], Photoshop(tm) [42], RenderMan(tm) [52], Explorer(R) [25], and DOOM(tm) [10], is to write in C and assembly language. Programmers use handspecialized rout...
Inductive Program Synthesis for Therapy Plan Generation
- New Generation Computing
, 1996
"... . Planning is investigated in an area where classical Strips- like approaches usually fail. The application domain is therapy (i.e. repair) for complex dynamic processes. The peculiarities of this domain are discussed in some detail for convincingly developing the characteristics of the inductive p ..."
Abstract
-
Cited by 10 (9 self)
- Add to MetaCart
. Planning is investigated in an area where classical Strips- like approaches usually fail. The application domain is therapy (i.e. repair) for complex dynamic processes. The peculiarities of this domain are discussed in some detail for convincingly developing the characteristics of the inductive planning approach presented. Plans are intended to be run for process therapy. Thus, plans are programs. Because of the unavoidable vagueness and uncertainty of information about complex dynamic processes in the case of disturbance, therapy plan generation turns out to be inductive program synthesis. There is developed a graph-theoretically based approach to inductive therapy plan generation. This approach is investigated from the inductive inference perspective. Particular emphasis is put on consistent and incremental learning of therapy plans. Basic application scenarios are developed and compared to each other. The inductive inference approach is invoked to develop and investigate a couple...
Safe Folding/Unfolding with Conditional Narrowing
- PROC. OF THE INTERNATIONAL CONFERENCE ON ALGEBRAIC AND LOGIC PROGRAMMING, ALP'97, SOUTHAMPTON (ENGLAND
, 1997
"... Functional logic languages with a complete operational semantics are based on narrowing, a generalization of term rewriting where unification replaces matching. In this paper, we study the semantic properties of a general transformation technique called unfolding in the context of functional logic l ..."
Abstract
-
Cited by 10 (9 self)
- Add to MetaCart
Functional logic languages with a complete operational semantics are based on narrowing, a generalization of term rewriting where unification replaces matching. In this paper, we study the semantic properties of a general transformation technique called unfolding in the context of functional logic languages. Unfolding a program is defined as the application of narrowing steps to the calls in the program rules in some appropriate form. We show that, unlike the case of pure logic or pure functional programs, where unfolding is correct w.r.t. practically all available semantics, unrestricted unfolding using narrowing does not preserve program meaning, even when we consider the weakest notion of semantics the program can be given. We single out the conditions which guarantee that an equivalent program w.r.t. the semantics of computed answers is produced. Then, we study the combination of this technique with a folding transformation rule in the case of innermost conditional narrowing, and prove that the resulting transformation still preserves the computed answer semantics of the initial program, under the usual conditions for the completeness of innermost conditional narrowing. We also discuss a relationship between unfold/fold transformations and partial evaluation of functional logic programs.
A Divergence Critic for Inductive Proof
- Journal of Artificial Intelligence Research
, 1996
"... Inductive theorem provers often diverge. This paper describes a simple critic, a computer program which monitors the construction of inductive proofs attempting to identify diverging proof attempts. Divergence is recognized by means of a "difference matching" procedure. The critic then proposes lemm ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
Inductive theorem provers often diverge. This paper describes a simple critic, a computer program which monitors the construction of inductive proofs attempting to identify diverging proof attempts. Divergence is recognized by means of a "difference matching" procedure. The critic then proposes lemmas and generalizations which "ripple" these differences away so that the proof can go through without divergence. The critic enables the theorem prover Spike to prove many theorems completely automatically from the definitions alone. 1. Introduction Two key problems in inductive theorem proving are proposing lemmas and generalizations. A prover's divergence often suggests to the user an appropriate lemma or generalization that will enable the proof to go through without divergence. As a simple example, consider the theorem, 8n : dbl(n) = n + n: This is part of a simple program verification problem (Dershowitz & Pinchover, 1990). Addition and doubling are defined recursively by means of th...
Specialization of Functional Logic Programs
"... Languages that integrate functional and logic programming with a complete operational semantics are based on narrowing, a unification-based goal-solving mechanism which subsumes the reduction principle of functional languages and the resolution principle of logic languages. In this article, we prese ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
Languages that integrate functional and logic programming with a complete operational semantics are based on narrowing, a unification-based goal-solving mechanism which subsumes the reduction principle of functional languages and the resolution principle of logic languages. In this article, we present a partial evaluation scheme for functional logic languages based on an automatic unfolding algorithm which builds narrowing trees. The method is formalized within the theoretical framework established by Lloyd and Shepherdson for the partial deduction of logic programs, which we have generalized for dealing with functional computations. A generic specialization algorithm is proposed which does not depend on the eager or lazy nature of the narrower being used. To the best of our knowledge, this is the first generic algorithm for the specialization of functional logic programs. We study the semantic properties of the transformation and the conditions under which the technique terminates, is...

