This project will develop compilation and implementation techniques for declarative programming languages on distributed memory architectures. The project consists of three parts. First, it will develop compile- time techniques for cost analysis of mess-age- passing implementations of declarative languages. Second, it will develop and implement algorithms for granularity control and task partitioning of languages with fine- grained implicit concurrency on distributed memory systems. Finally, the project will develop compile- time and runtime techniques for efficient execution of declarative languages in the context of multi-level memory hierarchies.