Eden extends the non-strict functional language Haskell with constructs to control parallel evaluation of processes. Although processes are defined explicitly, communication and synchronisation issues are handled in a way transparent to the programmer. In order to offer effective support for parallel evaluation, Eden's coordination constructs override the inherently sequential demand-driven (lazy) evaluation strategy of its computation language Haskell. Eden is a general-purpose parallel functional language suitable for developing sophisticated skeletons – which simplify parallel programming immensely – as well as for exploiting more irregular parallelism that cannot easily be captured by a predefined skeleton. The paper gives a comprehensive description of Eden, its semantics, its skeleton-based programming methodology – which is applied in three case studies – its implementation and performance. Furthermore it points at many additional results that have been achieved in the context of the Eden project.
No abstract
We present in this paper a graph-narrowing abstract machine which has been designed to support a sequential eager implementation of a functional logic language. Our approach has been to extend a purely functional, (programmed) graph reduction machine by mechanisms capable of performing unification and backtracking. We describe the structure of the machine and explain the compilation scheme which generates machine code from a given source program. Both the machine and the compilation scheme have been formally specified. A prototype emulator of the machine has been implemented in Occam on a transputer system. Future work is planned for incorporating lazy evaluation and parallelism to the machine. I n t r o d u c t i o nDuring the last years, several approaches have been proposed to achieve an integration of functional and logic programming languages in order to combine the advantages of the two main declarative programming paradigms in a single framework [DeGroot, Lindstrom 86], [Bellia, Levi 86]. Usually one argues that logic languages have more expressive power than functional languages , while the latter have a simpler execution model, particularly suited to parallel implementations. Roughly, many of the existing approaches to the integration of functional and logic programming can be parlLitioned into two classes: On the one hand, Horn clause logic languages enhanced with equality and functions; on the other hand, functional languages augmented with logical capabilities. This second class includes the so called functional logic languages [Reddy 85,87], which retain functional syntax but use narrowing --a unification based parameter passing mechanism which subsumes reduction and SLD-resolution --as operational semantics.We investigate in this paper a sequential, eager implementation of the functional logic language BABEL [Moreno, Rodrignez 89] on a graph narrowing abstract machine. Up to now, BABEL had been developped as a first order, type free language. Here, we extend it to a higher order functional logic language with polymorphic typing.Our approach has been to extend the sequential kernel of a parallel (programmed) graph reduction machine which has been designed for the execution of functional programming languages [Loogen et ai. 89] by the additional features that are necessary to execute functional logic programs, namely, *This work has been partially, supported by a german-spanish cooperation action, funded by the german D.A.A.D. and the spanish M.E.C tLehrstuhl f'tir Informatik II, Ahornstrai$e 55,
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
customersupport@researchsolutions.com
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.