Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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), http://www.cs.adelaide.edu.au/~wossa2004/HTML/19-brad-2.pdf
Alexander, B.: Compilation of Parallel Applications via Automated Transformation of BMF Programs, Phd. Thesis, University of Adelaide (2006), http://www.cs.adelaide.edu.au/~brad/thesis/main.pdf
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)
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)
Cunha, A., Pinto, S.P., Proenca, J.: Down with Variables, Technical report, No. DI-PURe-05.06.01 (2005)
Crooke, D.C.: Practical Structured Parallelism Using BMF, Thesis, University of Edinburgh (1999)
Gibbons, J.: An introduction to the Bird-Meertens Formalism, New Zealand Formal Program Development Colloquium, Hamilton, NZ (1994)
Hamdan, M.: A Combinational Framework for Parallel Programming Using Algorithmic Skeletons, Thesis, Department of Computing and Electrical Engineering. Heriot-Watt University (2000)
Jones, S., Hoare, T., Hoare, T., Tolmach, A.: Playing by the rules: rewriting as a practical optimisation technique. In: ACM SIGPLAN Haskell Workshop (2001)
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)
Kahn, G.: Natural Semantics. In: Brandenburg, F.J., Wirsing, M., Vidal-Naquet, G. (eds.) STACS 1987. LNCS, vol. 247, Springer, Heidelberg (1987)
Martin, U., Nipkow, T.: Automating Squiggol. In: Broy, M., Jones, C.D. (eds.) Programming Concepts and Methods, pp. 233–247. North-Holland, Amsterdam (1990)
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)
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)
Pettge, S.: A Fast Code Generator for Point-Free Form, Hons. Thesis, University of Adelaide (2005), http://www.cs.adelaide.edu.au/~brad/students/seanp.pdf
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)
Sands, D.: Total correctness by local improvement in the transformation of functional programs. ACM Trans. Program. Lang. Syst. 18(2) (1996)
Skillicorn, D.B., Cai, W.: Equational code generation: Implementing categorical data types for data parallelism. In: TENCON 1994, IEEE, Singapore (1994)
de Jonge, M., Visser, J.: Grammars as Contracts. In: Butler, G., Jarzabek, S. (eds.) GCSE 2000. LNCS, vol. 2177, Springer, Heidelberg (2001)
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)
Walinksy, C., Banerjee, D.: A Data-Parallel FP Compiler. Journal of Parallel and Distributed Computing 22, 138–153 (1994)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Alexander, B., Wendelborn, A. (2006). Data Movement Optimisation in Point-Free Form. In: Johnson, M., Vene, V. (eds) Algebraic Methodology and Software Technology. AMAST 2006. Lecture Notes in Computer Science, vol 4019. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11784180_5
Download citation
DOI: https://doi.org/10.1007/11784180_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-35633-2
Online ISBN: 978-3-540-35636-3
eBook Packages: Computer ScienceComputer Science (R0)