Deriving imperative code from functional programs
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Optimizing memory usage in the polyhedral model
ACM Transactions on Programming Languages and Systems (TOPLAS)
Application of the Polytope Model to Functional Programs
LCPC '99 Proceedings of the 12th International Workshop on Languages and Compilers for Parallel Computing
Compilation of a specialized functional language for massively parallel computers
Journal of Functional Programming
Hi-index | 0.00 |
We discuss a translation methodology for transforming a high level algorithmic specification written in ALPHA to an imperative data parallel language. We informally introduce the ALPHA language with the aid of an example and explain how it is adapted for doing static analysis and transformation. An ALPHA program can be naively compiled (P. Quinton et al., 1985) using applicative caching. Our compilation method makes incremental transformations on the abstract syntax tree of can ALPHA program in order to make efficiency and performance improvements over the naive code and optimize it for a given architecture. The compilation steps described include scheduling, alignment, partitioning, allocation, loop nest generation, and code generation and they are illustrated with an example.