Results 1 -
2 of
2
Concurrent Clean
, 1991
"... Concurrent Clean is an experimental, lazy, higher-order parallel functional programming language based on term graph rewriting. An important difference with other languages is that in Clean graphs are manipulated and not terms. This can be used by the programmer to control communication and sharing ..."
Abstract
-
Cited by 59 (4 self)
- Add to MetaCart
Concurrent Clean is an experimental, lazy, higher-order parallel functional programming language based on term graph rewriting. An important difference with other languages is that in Clean graphs are manipulated and not terms. This can be used by the programmer to control communication and sharing of computation. Cyclic structures can be defined. Concurrent Clean furthermore allows to control the (parallel) order of evaluation to make efficient evaluation possible. With help of sequential annotations the default lazy evaluation can be locally changed into eager evaluation. The language enables the definition of partially strict data structures which make a whole new class of algorithms feasible in a functional language. A powerful and fast strictness analyser is incorporated in the system. The quality of the code generated by the Clean compiler has been greatly improved such that it is one of the best code generators for a lazy functional language. Two very powerful parall...
Process Annotations and Process Types
, 1993
"... In a concurrent functional language processes are functions that are executed concurrently. Using special annotations based on lazy copying arbitrary dependencies between these functions can be used to specify arbitrary networks of processes. The communication and synchronization between the process ..."
Abstract
- Add to MetaCart
In a concurrent functional language processes are functions that are executed concurrently. Using special annotations based on lazy copying arbitrary dependencies between these functions can be used to specify arbitrary networks of processes. The communication and synchronization between the processes is realized using the lazy evaluation principle without any additional communication primitves. Communication takes place when a process demands a value that is being calculated by another process. A type system is proposed that enables the programmer to specify higher order functions as process skeletons for frequently occurring process structures. Introduction Functional languages have as advantage that, when a result is obtained, it will always be the same independent of the chosen order of reduction. This property makes functional languages very suited for interleaved and parallel evaluation. As is the case with eager evaluation, one has to be careful since changing the evaluation or...

