Results 1  10
of
38
Confluence of Conditional Rewrite Systems
"... Conditional rewriting has been studied both from the point of view of algebraic data type specifications and as a computational paradigm combining logic and functional programming. An important issue, in either case, is determining whether a rewrite system has the ChurchRosser, or confluence, prope ..."
Abstract

Cited by 56 (4 self)
 Add to MetaCart
Conditional rewriting has been studied both from the point of view of algebraic data type specifications and as a computational paradigm combining logic and functional programming. An important issue, in either case, is determining whether a rewrite system has the ChurchRosser, or confluence, property. In this paper, we settle negatively the question whether "joinabihty of critical pairs" is, in general, sufficient for confluence of terminating conditional systems. We review known sufficient conditions for confluence, and also prove two new positive results for systems having critical pairs and arbitrarily big terms in conditions.
A Survey and Classification of some Program Transformation Approaches and Techniques
 In TC2 IFIP Working Conference on Program Specification and Transformation
, 1987
"... Program transformation is a means to formally develop efficient programs from lucid specifications. A representative sample of the diverse range of program transformation research is classified into several different approaches based upon the motivations for and styles of constructing such formal de ..."
Abstract

Cited by 44 (0 self)
 Add to MetaCart
Program transformation is a means to formally develop efficient programs from lucid specifications. A representative sample of the diverse range of program transformation research is classified into several different approaches based upon the motivations for and styles of constructing such formal developments. Individual techniques for supporting construction of developments are also surveyed, and are related to the various approaches.
The Integration of Functions into Logic Programming: A Survey
, 1994
"... Functional and logic programming are the most important declarative programming paradigms, and interest in combining them has grown over the last decade. Early research concentrated on the definition and improvement of execution principles for such integrated languages, while more recently efficient ..."
Abstract

Cited by 35 (0 self)
 Add to MetaCart
Functional and logic programming are the most important declarative programming paradigms, and interest in combining them has grown over the last decade. Early research concentrated on the definition and improvement of execution principles for such integrated languages, while more recently efficient implementations of these execution principles have been developed so that these languages became relevant for practical applications. In this paper we survey the development of the operational semantics as well as
Inductive synthesis of equational programs
 In Eighth National Conf. on Arti cial Intelligence
, 1990
"... An equational approach to the synthesis of functional and logic program is taken. In this context, the synthesis task involves nding executable equations such that the given speci cation holds in their standard model. Hence, to synthesize such programs, induction is necessary.We formulate procedures ..."
Abstract

Cited by 27 (3 self)
 Add to MetaCart
An equational approach to the synthesis of functional and logic program is taken. In this context, the synthesis task involves nding executable equations such that the given speci cation holds in their standard model. Hence, to synthesize such programs, induction is necessary.We formulate procedures for inductiveproof,aswell as for program synthesis, using the framework of \ordered rewriting". We also propose heuristics for generalizing from a sequence of equational consequences. These heuristics handle cases where the deductive process alone is inadequate for coming up with a program. 1.
Synthesis of UNIX Programs using Derivational Analogy
 Machine Learning
, 1993
"... The feasibility of derivational analogy as a mechanism for improving problemsolving behavior has been shown for a variety of problem domains by several researchers. However, most of the implemented systems have been empirically evaluated in the restricted context of an already supplied base analo ..."
Abstract

Cited by 18 (2 self)
 Add to MetaCart
The feasibility of derivational analogy as a mechanism for improving problemsolving behavior has been shown for a variety of problem domains by several researchers. However, most of the implemented systems have been empirically evaluated in the restricted context of an already supplied base analog, or on a few isolated examples. In this paper we describe a derivational analogy based system, APU, that synthesizes UNIX shell scripts from a highlevel problem specification. APU uses topdown decomposition of problems, employing a hierarchical planner and a layered knowledge base of rules, and is able to speed up the derivation of programs by using derivational analogy. We assume that the problem specification is encoded in the vocabulary used by the rules. We describe APU's retrieval heuristics that exploit this assumption to automatically retrieve a good analog for a target problem from a case library, as well as its replay algorithm that enables it to effectively reuse the sol...
Combining Lazy Narrowing and Simplification
 In Proc. of the 6th International Symposium on Programming Language Implementation and Logic Programming
, 1994
"... . Languages that integrate functional and logic programming styles with a complete operational semantics are based on narrowing. In order to avoid useless computations and to deal with infinite data structures, lazy narrowing strategies have been proposed in the past. This paper presents an impo ..."
Abstract

Cited by 14 (5 self)
 Add to MetaCart
. Languages that integrate functional and logic programming styles with a complete operational semantics are based on narrowing. In order to avoid useless computations and to deal with infinite data structures, lazy narrowing strategies have been proposed in the past. This paper presents an important improvement of lazy narrowing by incorporating deterministic simplification steps into lazy narrowing derivations. These simplification steps reduce the search space so that in some cases infinite search spaces are reduced to finite ones. We show that the completeness of lazy narrowing is not destroyed by the simplification process and demonstrate the improved operational behavior by means of several examples. 1 Introduction In recent years, a lot of proposals have been made to amalgamate functional and logic programming languages [19]. Functional logic languages with a sound and complete operational semantics are based on narrowing, a combination of the reduction principle of ...
A New Perspective on Integrating Functional and Logic Languages
 Languages, Proceedings of the 3rd International Conference on Fifth Generation Computer Systems
, 1992
"... Traditionally the integration of functional and logic languages is performed by attempting to integrate their semantic logics in some way. Many languages have been developed by taking this approach, but none manages to exploit fully the programming features of both functional and logic languages and ..."
Abstract

Cited by 14 (0 self)
 Add to MetaCart
Traditionally the integration of functional and logic languages is performed by attempting to integrate their semantic logics in some way. Many languages have been developed by taking this approach, but none manages to exploit fully the programming features of both functional and logic languages and provide a smooth integration of the two paradigms. We propose that improved integrated systems can be constructed by taking a broader view of the underlying semantics of logic programming. A novel integrated language paradigm, Definitional Constraint Programming (DCP), is proposed. DCP generalises constraint logic programming by admitting userdefined functions via a purely functional subsystem and enhances it with the power to solve constraints over functional programs. This constraint approach to integration results in a homogeneous unified system in which functional and logic programming features are combined naturally. 1 Introduction During the past ten years the integration of funct...
Solving Goals in Equational Languages
 In Proc. 1st Int. Workshop on Conditional Term Rewriting Systems
, 1987
"... Solving equations in equational Hornclause theories is a programming paradigm that combines logic programming and functional programming in a clean manner. Languages like EQLOG, SLOG and RITE, express programs as conditional rewrite rules and goals as equations to be solved. Procedures for completi ..."
Abstract

Cited by 14 (5 self)
 Add to MetaCart
Solving equations in equational Hornclause theories is a programming paradigm that combines logic programming and functional programming in a clean manner. Languages like EQLOG, SLOG and RITE, express programs as conditional rewrite rules and goals as equations to be solved. Procedures for completion of conditional equational theories, in a manner akin to that of Knuth and Bendix for unconditional theories, also require methods for solving equations appearing in conditions. Rewritebased logicprogramming uses (conditional) narrowing to solve equational goals. Recently a different, topdown equation solving procedure was proposed for unconditional rewrite systems. In this paper, we express equational goal solving using conditional rules. Some refinements are described: the notion of operator derivability is used to prune useless paths in the search tree and our use of oriented goals eliminates some redundant paths leading to nonnormalized solutions. Our goaldirected method can also be extended to handle conditional systems. I. Equational Programming Several proposed programming languages use conditional equations as a means of combining the main features of logic programming and functional programming; such languages include RITE [DershowitzPlaisted85], SLOG [Fribourg85], and EQLOG [GoguenMeseguer86]. In this paradigm, a program is a set of rules, that is, directed (conditional) equations, and a goal is the question whether an equation s = t has a solution in the equational theory presented by the program. Computing consists of finding values (substitutions) for the variables in s and t for which the equality holds. Efficient methods of solving equations are therefore very important. So, too, is the ability to detect that equations are unsatisfiable.