Results 11  20
of
24
Contributions to Functional Programming in Logic
, 1990
"... We accept this thesis as conforming ..."
Rascal: From Algebraic Specification to MetaProgramming
 In Proceedings of AMMSE’11, volume 56 of EPTCS
, 2011
"... Algebraic specification has a long tradition in bridging the gap between specification and programming by making specifications executable. Building on extensive experience in designing, implementing and using specification formalisms that are based on algebraic specification and term rewriting (nam ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Algebraic specification has a long tradition in bridging the gap between specification and programming by making specifications executable. Building on extensive experience in designing, implementing and using specification formalisms that are based on algebraic specification and term rewriting (namely ASF and ASF+SDF), we are now focusing on using the best concepts from algebraic specification and integrating these into a new programming language: RASCAL. This language is easy to learn by nonexperts but is also scalable to very large metaprogramming applications. We explain the algebraic roots of RASCAL and its main application areas: software analysis, software transformation, and design and implementation of domainspecific languages. Some example applications in the domain of ModelDriven Engineering (MDE) are described to illustrate this. 1
Massively Parallel Programming Languages  A Classification of Design Approaches
"... This paper presents the results of a study in which we examined about 50 parallel programming languages in order to detect typical approaches towards supporting massive parallelism. Based on a classification into nine classes, semantic properties affecting the development of parallel programs are co ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
This paper presents the results of a study in which we examined about 50 parallel programming languages in order to detect typical approaches towards supporting massive parallelism. Based on a classification into nine classes, semantic properties affecting the development of parallel programs are compared. From a consideration of the general function of programming languages in software engineering, we derive basic requirements on parallel languages.
I Equational Programming: A Unifying Approach to Logic and Functional Programming
, 1985
"... Functional and logic languages have many similarities, but there are significant differences between them that the integration of functional and logic languages is a challenging problem. The approach presented in this paper is called equational programming. We show that equations can be used to defi ..."
Abstract
 Add to MetaCart
Functional and logic languages have many similarities, but there are significant differences between them that the integration of functional and logic languages is a challenging problem. The approach presented in this paper is called equational programming. We show that equations can be used to define many features of functional languages, such as abbreviations, patterns, set abstraction and infinite objects, as well as those of logic languages, such as the ability to invert functions, unify terms, and compute with logical variables and partiallydefined values. A language called EqL is described that embodies this equational approach. The formal semantics of equations is given in terms of the complete set of solutions and the operational semantics is given in terms of two sets of reduction rules:treductions and ~reductions. We refer to the latter form of reduction as obiect refinement. Equations are solved by gradually refining the values bound to the variables of the equation. This approach is amenable to parallel execution and also offers advantages in comparison to related techniques such as narrowing. 1 I.
unknown title
"... The KnuthBendix completion procedure was introduced as a means of deriving canonical termrewriting systems to serve as decision procedures for given equational theories. The procedure generates new rewrite rules to resolve ambiguities resulting from existing rules that overlap. We propose using th ..."
Abstract
 Add to MetaCart
The KnuthBendix completion procedure was introduced as a means of deriving canonical termrewriting systems to serve as decision procedures for given equational theories. The procedure generates new rewrite rules to resolve ambiguities resulting from existing rules that overlap. We propose using this procedure to synthesize logic programs, as well as functional programs, from specifications and domain knowledge expressed as equivalencepreserving rewrite rules. An implementation is underway. 1.
LOGIC PROGRAMMING cum APPLICATIVE PROGRAMMING* ABSTRACT
"... Conditional (directed) equations provid' ~ a paradigm of computation that combines the cl(',, ~ svntax and semantics of both PROLOGlike logic p'rogra~ming and (firstorder) LIsPlike applicative (functional) programming in a uniform manner. For applicative programming, equations are ..."
Abstract
 Add to MetaCart
Conditional (directed) equations provid' ~ a paradigm of computation that combines the cl(',, ~ svntax and semantics of both PROLOGlike logic p'rogra~ming and (firstorder) LIsPlike applicative (functional) programming in a uniform manner. For applicative programming, equations are used as conditional rewrite rules; for logic programming, the same equations are employed for "conditional narrowing". Increased expressive power is obtainable by combining both paradigms in one program. 1.
Categories and Subject Descriptors: D.3.4 [Programming Languages]: Processors—compilers;
"... The article introduces a novel notion of lazy rewriting. By annotating argument positions as lazy, redundant rewrite steps are avoided, and the termination behavior of a termrewriting system can be improved. Some transformations of rewrite rules enable an implementation using the same primitives as ..."
Abstract
 Add to MetaCart
The article introduces a novel notion of lazy rewriting. By annotating argument positions as lazy, redundant rewrite steps are avoided, and the termination behavior of a termrewriting system can be improved. Some transformations of rewrite rules enable an implementation using the same primitives as an implementation of eager rewriting.
Stony Brook Parallel Programming Project
"... this paper we study the parallelization of a declarative language based on equations ..."
Abstract
 Add to MetaCart
this paper we study the parallelization of a declarative language based on equations
On Rewrite Programs: Semantics and Relationship with Prolog ∗
"... Rewrite programs are logic programs represented as rewrite rules, whose execution mechanism usually employs some version of KnuthBendix type completion. Rewrite programs allow one to express mutually exclusively defined predicates as well as those which are not. In this paper we demonstrate that re ..."
Abstract
 Add to MetaCart
Rewrite programs are logic programs represented as rewrite rules, whose execution mechanism usually employs some version of KnuthBendix type completion. Rewrite programs allow one to express mutually exclusively defined predicates as well as those which are not. In this paper we demonstrate that rewrite programs, although denotationally equivalent to Prolog on the ground level, may produce fewer answers in general. Consequently, a rewrite program may halt with finitely many answers while the corresponding Prolog program goes into an infinite loop. In order to explain these observations, we present a precise operational semantics for rewrite programs, define their denotational (fixpoint) semantics, prove the equivalence of operational, model theoretic and denotational semantics, and clarify the relationship between rewrite programs and Prolog. Comparisons between the pruning effects of simplification and those of subsumption based loop checking mechanisms for Prolog are also included. Running title: On Rewrite Programs
A Structured Functional Programming Language
"... Abstract. Declarative languages provide means of specifying problem solutions, without giving much attention to how the proposed solution is going to be effectively implemented. When only specification is provided, the system attempts execution using search techniques which may compromise efficiency ..."
Abstract
 Add to MetaCart
Abstract. Declarative languages provide means of specifying problem solutions, without giving much attention to how the proposed solution is going to be effectively implemented. When only specification is provided, the system attempts execution using search techniques which may compromise efficiency. In this paper, we propose a new programming language that integrates functional and logic features together with procedural ones. In normal cases, this hybrid language should provide the programmer with advantages of both i.e., efficiency and clarity. Using this language, very rapid prototyping is possible. 1