
of methods all of which preserve correctness of the program. Furthermore, it gives the
programmer a simpler computational model than models prevalent today.
8.2 Detailed Discussion of our Approach
Most efforts at developing a parallel language start with a sequential language (Lisp,
Pascal, Algol) and introduce concepts relevant to parallel execution (Fork/Join, Task,
Task groups, Critical region, Monitors, Semaphores, Interprocess communication, event-
wait/signal, etc.). [See [27] for a survey.] These allow the programmer to state and control
parallelism explicitly. In general, they create a very complex model of computation, mak-
ing the tas ...