Iterative and Parallel Algorithm Design from High Level Language Traces
We present a high level language called SequenceL. The language allows a programmer to describe functions in terms of abstract relationships between their inputs and outputs, and the semantics of the language are capable of automatically discovering and implementing the required algorithms, including iterative and parallel control structures in many cases. Current implementations do not produce code of comparable efficiency to that of a good human programmer. Current implementations can, however, be used as a tool to guide human programmers in discovering and comparing options for parallelizing their solutions. This paper describes the language and approach, and illustrates this kind of guidance with a simple example.
- 4.Lämmel, R., Peyton-Jones, S.: Scrap your boilerplate: a practical design pattern for generic programming. In: Proceedings of TLDI 2003. ACM Press, New York (2003)Google Scholar
- 5.Lämmel, R., Peyton-Jones, S.: Scrap more boilerplate: reflection, zips, and generalised casts. To appear in Proceedings of ICFP 2004. ACM Press, New York (2004)Google Scholar
- 6.Meijer, E., Fokkinga, M.M., Paterson, R.: Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire. In: FPCA. LNCS, vol. 523, pp. 124–144. Springer, Heidelberg (1991)Google Scholar