Results 1 
2 of
2
A Method for Implementing Equational Theories as Logic Programs
, 1994
"... Equational theories underly many fields of computing, including functional programming, symbolic algebra, theorem proving, term rewriting and constraint solving. In this paper we show a method for implementing many equational theories with a limited class of logic programs. We define regular equa ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Equational theories underly many fields of computing, including functional programming, symbolic algebra, theorem proving, term rewriting and constraint solving. In this paper we show a method for implementing many equational theories with a limited class of logic programs. We define regular equational theories, a useful class of theories, and illustrate with a number of examples how our method can be used in obtaining efficient implementations for them. The significance of our method is that: ffl It is simple and easy to apply. ffl Although executable, it supports separation of concerns between specification and implementation. ffl Its class of logic programs execute with impressive efficiency using Prolog. ffl It permits interesting compilation and optimization techniques that can improve execution efficiency still further. ffl It offers perspectives on term rewriting and functional programming evaluation strategies, how they can be compiled, and how they can be integrate...
Towards Applicative Relational Programming
, 1992
"... Functional programming comes in two flavours: one where “functions are firstclass citizens ” (we call this applicative) and one which is based on equations (we call this declarative). In relational programming clauses play the role of equations. Hence Prolog is declarative. The purpose of this pape ..."
Abstract
 Add to MetaCart
Functional programming comes in two flavours: one where “functions are firstclass citizens ” (we call this applicative) and one which is based on equations (we call this declarative). In relational programming clauses play the role of equations. Hence Prolog is declarative. The purpose of this paper is to provide in relational programming a mathematical basis for the relational analog of applicative functional programming. We use the cylindric semantics of firstorder logic due to Tarski and provide a new notation for the required cylinders that we call tables. We define the Table/Relation Algebra with operators sufficient to translate Horn clauses into algebraic form. We establish basic mathematical properties of these operators. We show how relations can be firstclass citizens, and devise mechanisms for modularity, for local scoping of predicates, and for exporting/importing relations between programs. 1 Applicative versus declarative definitions Some functional programming systems are applicative; others declarative. Relational programming, on the other hand, only exists in declarative form. In this section we explain how we use this terminology, and argue that relational programming should also have both declarative and applicative forms. 1.1 In functional programming