Abstract
Refined languages (Refined Fortran, Refined C, etc.) are extensions of their parent languages in which it is possible to express parallelism, but impossible to create races or deadlocks. Where strictly deterministic behavior is desired, multiple executions of a Refined Fortran program with the same input data can be guaranteed either to compute the same results or to terminate with the same runtime errors regardless of differences in scheduling. Where asynchronous behavior is desired, freedom from races can be guaranteed. The refined languages approach achieves its goal by extending sequential imperative programming languages with data-oriented (rather than control-oriented) constructs, and by viewing the expression of parallelism in data-oriented (rather than control-oriented) terms. The authors discuss the refined language approach, and they examine the major refined language constructs for writing synchronous deterministic parallel code: the PARTITION and DISTINCT statements.
| Original language | English |
|---|---|
| Pages | 607-615 |
| Number of pages | 9 |
| DOIs | |
| State | Published - 1989 |
| Event | Proceedings: Supercomputing '89 - Reno, NV, USA Duration: 13 Nov 1989 → 17 Nov 1989 |
Conference
| Conference | Proceedings: Supercomputing '89 |
|---|---|
| City | Reno, NV, USA |
| Period | 13/11/89 → 17/11/89 |