Data Movement Optimisation in Point-Free Form

  • Brad Alexander
  • Andrew Wendelborn
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4019)


Programs written in point-free form express computation purely in terms of functions. Such programs are especially amenable to local transformation. In this paper, we describe a process for optimising the transport of data through point-free programs. This process systematically applies local transformations to achieve effective global optimisation. We describe the strategies we employ to ensure this process is tractable. This process has been implemented as an intermediate stage of a compiler. The optimiser is shown to be highly effective, producing code of comparable efficiency to hand-written code.


Vector Optimisation Optimiser Code Program Transformation Local Transformation Functional Language 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Alexander, B., Wendelborn, A.L.: Automated Transformation of BMF Programs. In: The First International Workshop on Object Systems and Software Architectures, pp. 133–141 (2004),
  2. 2.
    Alexander, B.: Compilation of Parallel Applications via Automated Transformation of BMF Programs, Phd. Thesis, University of Adelaide (2006),
  3. 3.
    Backus, J.: Can Programming Be Liberated from the von Neumann Style? A functional Style and Its Algebra of Programs. Communications of the ACM 21(8), 613–641 (1978)zbMATHCrossRefMathSciNetGoogle Scholar
  4. 4.
    Borras, P., Clément, D., Despeyroux, T., Incerpi, J., Kahn, G.: CENTAUR: the system. In: SIGSOFT software engineering notes SIGPLAN: SIGPLAN notices, vol. 24(2), ACM, New York (1989)Google Scholar
  5. 5.
    Cunha, A., Pinto, S.P., Proenca, J.: Down with Variables, Technical report, No. DI-PURe-05.06.01 (2005)Google Scholar
  6. 6.
    Crooke, D.C.: Practical Structured Parallelism Using BMF, Thesis, University of Edinburgh (1999)Google Scholar
  7. 7.
    Gibbons, J.: An introduction to the Bird-Meertens Formalism, New Zealand Formal Program Development Colloquium, Hamilton, NZ (1994)Google Scholar
  8. 8.
    Hamdan, M.: A Combinational Framework for Parallel Programming Using Algorithmic Skeletons, Thesis, Department of Computing and Electrical Engineering. Heriot-Watt University (2000)Google Scholar
  9. 9.
    Jones, S., Hoare, T., Hoare, T., Tolmach, A.: Playing by the rules: rewriting as a practical optimisation technique. In: ACM SIGPLAN Haskell Workshop (2001)Google Scholar
  10. 10.
    Johann, P., Visser, E.: Warm fusion in Stratego: A case study in the generation of program transformation systems, Technical report, Department of Computer Science, Universiteit Utrecht, 1997 (1999)Google Scholar
  11. 11.
    Kahn, G.: Natural Semantics. In: Brandenburg, F.J., Wirsing, M., Vidal-Naquet, G. (eds.) STACS 1987. LNCS, vol. 247, Springer, Heidelberg (1987)CrossRefGoogle Scholar
  12. 12.
    Martin, U., Nipkow, T.: Automating Squiggol. In: Broy, M., Jones, C.D. (eds.) Programming Concepts and Methods, pp. 233–247. North-Holland, Amsterdam (1990)Google Scholar
  13. 13.
    Mauny, M., Suarez, A.: Implementing functional languages in the Categorical Abstract Machine. In: LFP 1986: Proceedings of the 1986 ACM conference on LISP and functional programming, pp. 266–278. ACM Press, New York (1986)CrossRefGoogle Scholar
  14. 14.
    Onoue, Y., Hu, Z., Takeichi, M., Iwasaki, H.: A calculational fusion system HYLO. In: Proceedings of the IFIP TC 2 WG 2.1 international workshop on Algorithmic languages and calculi, pp. 76–106. Chapman & Hall, Ltd., Boca Raton (1997)Google Scholar
  15. 15.
    Pettge, S.: A Fast Code Generator for Point-Free Form, Hons. Thesis, University of Adelaide (2005),
  16. 16.
    Rao, P., Walinsky, C.: An equational language for data-parallelism. In: Proceedings of the fourth ACM SIGPLAN symposium on Principles and practice of parallel programming, pp. 112–118. ACM Press, New York (1993)CrossRefGoogle Scholar
  17. 17.
    Sands, D.: Total correctness by local improvement in the transformation of functional programs. ACM Trans. Program. Lang. Syst. 18(2) (1996)Google Scholar
  18. 18.
    Skillicorn, D.B., Cai, W.: Equational code generation: Implementing categorical data types for data parallelism. In: TENCON 1994, IEEE, Singapore (1994)Google Scholar
  19. 19.
    de Jonge, M., Visser, J.: Grammars as Contracts. In: Butler, G., Jarzabek, S. (eds.) GCSE 2000. LNCS, vol. 2177, Springer, Heidelberg (2001)CrossRefGoogle Scholar
  20. 20.
    Visser, E.: Stratego: A Language for Program Transformation Based on Rewriting Strategies. In: Middeldorp, A. (ed.) RTA 2001. LNCS, vol. 2051, pp. 357–362. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  21. 21.
    Walinksy, C., Banerjee, D.: A Data-Parallel FP Compiler. Journal of Parallel and Distributed Computing 22, 138–153 (1994)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Brad Alexander
    • 1
  • Andrew Wendelborn
    • 1
  1. 1.School of Computer ScienceUniversity of AdelaideAdelaideAustralia

Personalised recommendations