V-cal is a calculus designed to support the compilation of data parallel languages that allows to describe program transformations and optimizations as semantics preserving rewrite rules. In V-cal the program transformation and optimization phase of a compiler is organized in three independent passes: in the rst pass a set of rewrite rules are applied that attempt to identify the potential parallelism of an algorithm. In the second pass program parts amenable to parallelization or algorithm substitution are replaced by their semantically equivalent parallel counterparts. Finally, a set of rules are applied that map the parallelized program to the target architecture in a way that makes e cient use of the given resources. allel languages provide a programming model that abstracts from parallelism, communication, and synchronization. To be able to express optimizing transformations in V-cal parallelism, communication, and synchronization are made explicit by the means of dedicated operat...
P. F. G. Dechering, J. A. Trescher, J. P. M. de Vr