A new process model for functions
Term graph rewriting
A design study of the EARTH multiprocessor
PACT '95 Proceedings of the IFIP WG10.3 working conference on Parallel architectures and compilation techniques
Parallel implementation of lazy functional languages using abstract demand propagation
Parallel implementation of lazy functional languages using abstract demand propagation
ICALP '90 Proceedings of the 17th International Colloquium on Automata, Languages and Programming
Asynchronous Mobile Processes and Graph Rewriting
PARLE '92 Proceedings of the 4th International PARLE Conference on Parallel Architectures and Languages Europe
Building Multithreaded Architectures with Off-the-Shelf Microprocessors
Proceedings of the 8th International Symposium on Parallel Processing
Lenient evaluation is neither strict nor lazy
Computer Languages
Lenient evaluation is neither strict nor lazy
Computer Languages
Hi-index | 0.00 |
In a companion paper (Tremblay G. Lenient evaluation is neither strict nor lazy. Computer languages 2000; 26:43-66.), we showed that non-strict functional languages were not necessarily lazy. More precisely, non-strict functional languages can be divided into lenient and lazy languages, both types allowing program constructions not directly available in strict functional languages. In this paper, we present parallel models of three evaluation strategies (strict, lenient, and lazy), along with an examination of the impact of these evaluation strategies on the implicit parallelism that can be extracted from programs. These formal semantics, expressed using a parallel notation (@p-calculus), make it possible to show why lenient evaluation can be seen as more naturally parallel.