A formal model for the parallel semantics of P3L

Some formalizations have been developed in order to give a complete description of the parallel semantics of P3L, a programming language which ensures both task and data parallelism. However, the description level provided by the employed formalisms is either too much 'abstract' unable to grasp the operational behavior of the skeletons of the language or too much 'concrete' close to implementation details and therefore related to a particular machine model. This paper shows how the Gurevich's Abstract State Machines (ASMs) have been successfully employed to describe the parallel semantics of skeletons of P3L completely abstracting from any implementation detail. The proposed model describes both the operation of the compiler which leads to define a network of processes start° ing from a given program, and the computation of the running processes. The model has been also taken as a theoretical basis to prove some of the most interesting rewriting rules used by the compiler to get a better program performance and efficiency.