Coroutines and networks of parallel processes
Abstract
The concept of coroutine or process is useful in a large class of applications, usually involving incremental generation or transformation of data. We present a language based on a clear semantics of process interaction, which facilitates well-structured programming of dynamically evolving networks of processes. These networks exhibit the same input /output behavior whether they are
executed sequentially or in parallel. Sample program proofs are used to illustrate the benefits of the language's simple denotational semantics. The language serves also to clarify the relationships
between coroutines, call-by-need, dynamic data structures, and parallel computation.
Les concepts de coroutine et de processus interviennent dans une grande variété d'applications, où il est en général nécessaire de produire ou de transformer des données de façon progressive. Nous présentons un langage, fondé sur une vue sémantique précise de l'interaction entre processus, qui facilite la programmation de réseaux de processus qui évoluent dynamiquement. Ces
réseaux ont un comportement externe unique, qu'ils soient exécutés de manière séquentielle ou parallèle. Les avantages d'une sémantique dénotationelle simple sont illustrés par des preuves de programmes. Ce langage de programmation permet aussi de clarifier les relations entre plusieurs concepts:coroutines, appel par nécessité, structures de données dynamiques et calcul parallèle.
Domains
Computer Science [cs]Origin | Files produced by the author(s) |
---|