Iterative and Parallel Algorithm Design from High Level Language Traces

  • Daniel E. Cooke
  • J. Nelson Rushton
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3516)


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.


Discrete Wavelet Transform Current Implementation Space Shuttle Execution Strategy Software Practice 
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.


  1. 1.
    Cooke, D.E., Gates, A.: On the Development of a Method to Synthesize Programs from Requirement Specifications. International Journal on Software Engineering and Knowledge Engineering 1(1), 21–38 (1991)CrossRefGoogle Scholar
  2. 2.
    Cooke, D.E.: An Introduction to SEQUENCEL: A Language to Experiment with Nonscalar Constructs. Software Practice and Experience 26(11), 1205–1246 (1996)CrossRefGoogle Scholar
  3. 3.
    Cooke, D.E., Andersen, P.: Automatic Parallel Control Structures in SequenceL. Software Practice and Experience 30(14), 1541–1570 (2000)zbMATHCrossRefGoogle Scholar
  4. 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. 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. 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

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Daniel E. Cooke
    • 1
  • J. Nelson Rushton
    • 1
  1. 1.Computer Science DepartmentTexas Tech UniversityLubbockU.S.A.

Personalised recommendations