The framework of this project lies in the programming of high-performance computers. These computers are parallel or even massively-parallel machines, where tens, hundreds or thousands of processors work on the same computation simultaneously (in parallel). Unfortunately, current production languages for parallel machines are machine-dependent and difficult to use. Both these problems can be solved by moving to more abstract programming paradigms, like functional programming. The objectives of our project is to investigate compiler techniques for a class of abstract high-level, data-parallel functional languages.