Results 1 - 10
of
62
An Implementation of Narrowing Strategies
- Journal of the ACM
, 2001
"... This paper describes an implementation of narrowing, an essential component of implementations of modern functional logic languages. These implementations rely on narrowing, in particular on some optimal narrowing strategies, to execute functional logic programs. We translate functional logic progra ..."
Abstract
-
Cited by 273 (111 self)
- Add to MetaCart
This paper describes an implementation of narrowing, an essential component of implementations of modern functional logic languages. These implementations rely on narrowing, in particular on some optimal narrowing strategies, to execute functional logic programs. We translate functional logic programs into imperative (Java) programs without an intermediate abstract machine. A central idea of our approach is the explicit representation and processing of narrowing computations as data objects. This enables the implementation of operationally complete strategies (i.e., without backtracking) or techniques for search control (e.g., encapsulated search). Thanks to the use of an intermediate and portable representation of programs, our implementation is general enough to be used as a common back end for a wide variety of functional logic languages.
Higher-order narrowing with definitional trees
- Neural Computation
, 1996
"... Functional logic languages with a sound and complete operational semantics are mainly based on narrowing. Due to the huge search space of simple narrowing, steadily improved narrowing strategies have been developed in the past. Needed narrowing is currently the best narrowing strategy for first-ord ..."
Abstract
-
Cited by 74 (22 self)
- Add to MetaCart
Functional logic languages with a sound and complete operational semantics are mainly based on narrowing. Due to the huge search space of simple narrowing, steadily improved narrowing strategies have been developed in the past. Needed narrowing is currently the best narrowing strategy for first-order functional logic programs due to its optimality properties w.r.t. the length of derivations and the number of computed solutions. In this paper, we extend the needed narrowing strategy to higher-order functions and λ-terms as data structures. By the use of definitional trees, our strategy computes only incomparable solutions. Thus, it is the first calculus for higher-order functional logic programming which provides for such an optimality result. Since we allow higher-order logical variables denoting λ-terms, applications go beyond current functional and logic programming languages.
The Tile Model
- PROOF, LANGUAGE AND INTERACTION: ESSAYS IN HONOUR OF ROBIN MILNER
, 1996
"... In this paper we introduce a model for a wide class of computational systems, whose behaviour can be described by certain rewriting rules. We gathered our inspiration both from the world of term rewriting, in particular from the rewriting logic framework [Mes92], and of concurrency theory: among the ..."
Abstract
-
Cited by 60 (23 self)
- Add to MetaCart
In this paper we introduce a model for a wide class of computational systems, whose behaviour can be described by certain rewriting rules. We gathered our inspiration both from the world of term rewriting, in particular from the rewriting logic framework [Mes92], and of concurrency theory: among the others, the structured operational semantics [Plo81], the context systems [LX90] and the structured transition systems [CM92] approaches. Our model recollects many properties of these sources: first, it provides a compositional way to describe both the states and the sequences of transitions performed by a given system, stressing their distributed nature. Second, a suitable notion of typed proof allows to take into account also those formalisms relying on the notions of synchronization and side-effects to determine the actual behaviour of a system. Finally, an equivalence relation over sequences of transitions is defined, equipping the system under analysis with a concurrent semantics, ...
Argument Filtering Transformation
- In Proc. 1st PPDP, LNCS 1702
, 1999
"... To simplify the task of proving termination of term rewriting systems, several elimination methods, such as the dummy elimination, the distribution elimination, the general dummy elimination and the improved general dummy elimination, have been proposed. In this paper, we show that the argument lter ..."
Abstract
-
Cited by 37 (1 self)
- Add to MetaCart
To simplify the task of proving termination of term rewriting systems, several elimination methods, such as the dummy elimination, the distribution elimination, the general dummy elimination and the improved general dummy elimination, have been proposed. In this paper, we show that the argument ltering method combining with the dependency pair technique is essential in all the above elimination methods. We present remarkable simple proofs for the soundness of these elimination methods based on this observation. Moreover, we propose a new elimination method, called the argument ltering transformation, which is not only more powerful than all the other elimination methods but also especially useful to make clear the essential relation hidden behind these methods.
A 2-Categorical Presentation of Term Graph Rewriting
- CATEGORY THEORY AND COMPUTER SCIENCE, VOLUME 1290 OF LNCS
, 1997
"... It is well-known that a term rewriting system can be faithfully described by a cartesian 2-category, where horizontal arrows represent terms, and cells represent rewriting sequences. In this paper we propose a similar, original 2-categorical presentation for term graph rewriting. Building on a re ..."
Abstract
-
Cited by 32 (16 self)
- Add to MetaCart
It is well-known that a term rewriting system can be faithfully described by a cartesian 2-category, where horizontal arrows represent terms, and cells represent rewriting sequences. In this paper we propose a similar, original 2-categorical presentation for term graph rewriting. Building on a result presented in [8], which shows that term graphs over a given signature are in one-to-one correspondence with arrows of a gs-monoidal category freely generated from the signature, we associate with a term graph rewriting system a gs-monoidal 2-category, and show that cells faithfully represent its rewriting sequences. We exploit the categorical framework to relate term graph rewriting and term rewriting, since gs-monoidal (2-)categories can be regarded as "weak" cartesian (2-)categories, where certain (2-)naturality axioms have been dropped.
The Narrowing-Driven Approach to Functional Logic Program Specialization
- New Generation Computing
, 2002
"... Partial evaluation is a semantics-based program optimization technique which has been investigated within di#erent programming paradigms and applied to a wide variety of languages. Recently, a partial evaluation framework for functional logic programs has been proposed. ..."
Abstract
-
Cited by 32 (18 self)
- Add to MetaCart
Partial evaluation is a semantics-based program optimization technique which has been investigated within di#erent programming paradigms and applied to a wide variety of languages. Recently, a partial evaluation framework for functional logic programs has been proposed.
An Abstract Standardisation Theorem
, 1992
"... The standardisation theorem is a key theorem in the -calculus. It implies that any normal form can be reached by the normal order (leftmost outermost) strategy. The theorem states that any reduction may be rearranged in a top-down and left-to-right order. This also holds in orthogonal term rewriting ..."
Abstract
-
Cited by 26 (5 self)
- Add to MetaCart
The standardisation theorem is a key theorem in the -calculus. It implies that any normal form can be reached by the normal order (leftmost outermost) strategy. The theorem states that any reduction may be rearranged in a top-down and left-to-right order. This also holds in orthogonal term rewriting systems (TRS), although the left-to-right order is more subtle. We give a new presentation of the standardisation property by means of four axioms about the residual and nesting relations on redexes. This axiomatic approach provides a better understanding of standardisation, and makes it applicable in other settings, such as dags or interaction networks. We also treat conflicts between redexes (critical pairs in TRS). The axioms include Berry's stability, proving it to be a intrinsic notion of deterministic calculi. 1 Introduction The -calculus has two main syntactic theorems. One is the Church-Rosser theorem, which induces uniqueness of normal forms. The second one is the standardisation...
Overlapping Rules and Logic Variables in Functional Logic Programs
- In Twenty Second International Conference on Logic Programming
, 2006
"... Abstract. Functional logic languages extend purely functional languages with two features: operations defined by overlapping rules and logic variables in both defining rules and expressions to evaluate. In this paper, we show that only one of these features is sufficient in a core language. On the o ..."
Abstract
-
Cited by 24 (8 self)
- Add to MetaCart
Abstract. Functional logic languages extend purely functional languages with two features: operations defined by overlapping rules and logic variables in both defining rules and expressions to evaluate. In this paper, we show that only one of these features is sufficient in a core language. On the one hand, overlapping rules can be eliminated by introducing logic variables in rules. On the other hand, logic variables can be eliminated by introducing operations defined by overlapping rules. The proposed transformations between different classes of programs not only give a better understanding of the features of functional logic programs but also may simplify implementations of functional logic languages. 1

