Skip to main content

Generic Program Transformation

  • Conference paper
Advanced Functional Programming (AFP 1998)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1608))

Included in the following conference series:

Abstract

When writing a program, especially in a high level language such as Haskell, the programmer is faced with a tension between abstraction and efficiency. A program that is easy to understand often fails to be efficient, while a more efficient solution often compromises clarity.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Augustsson, L., Rittri, M., Synek, D.: Functional pearl: On generating unique names. Journal of Functional Programming 4, 117–123 (1994)

    Article  Google Scholar 

  2. Bellegarde, F.: A transformation system combining partial evaluation with term rewriting. In: Heering, J., Meinke, K., Möller, B., Nipkow, T. (eds.) HOA 1993. LNCS, vol. 816, pp. 40–55. Springer, Heidelberg (1994)

    Google Scholar 

  3. Bird, R.S.: Tabulation techniques for recursive programs. Computing Surveys 12(4), 403–417 (1980)

    Article  MATH  MathSciNet  Google Scholar 

  4. Bird, R.S.: The promotion and accumulation strategies in functional programming. ACM Transactions on Programming Languages and Systems 6(4), 487–504 (1984)

    Article  MATH  MathSciNet  Google Scholar 

  5. Bird, R.S.: Introduction to Functional Programming in Haskell. International Series in Computer Science. Prentice Hall, Englewood Cliffs (1998)

    Google Scholar 

  6. Boiten, E.A.: Improving recursive functions by inverting the order of evaluation. Science of Computer Programming 18(2), 139–179 (1992)

    Article  MATH  MathSciNet  Google Scholar 

  7. Burstall, R.M., Darlington, J.: A transformation system for developing recursive programs. Journal of the ACM 24(1), 44–67 (1977)

    Article  MATH  MathSciNet  Google Scholar 

  8. Chin, W.N.: Fusion and tupling transformations: Synergies and conflicts (invited paper). In: Fuji International Workshop on Functional and Logic Programming, pp. 176–195. World Scientific, Singapore (1995)

    Google Scholar 

  9. Curien, R., Qian, Z., Shi, H.: Efficient second-order matching. In: Ganzinger, H. (ed.) RTA 1996. LNCS, vol. 1103, pp. 317–331. Springer, Heidelberg (1996)

    Google Scholar 

  10. Gibbons, J., Jones, G.: The under-appreciated unfold. In: 3rd ACM SIGPLAN International Conference on Functional Programming 1998 (1998)

    Google Scholar 

  11. Hu, Z., Iwasaki, H., Takeichi, M.: Calculating accumulations. Technical Report METR 96-0-3, Department of Mathematical Engineering, University of Tokyo, Japan (1996), Available from : http://www.ipl.t.u-tokyo.ac.jp/hu/pub/tech.html

  12. Hu, Z., Iwasaki, H., Takeichi, M., Takano, A.: Tupling calculation eliminates multiple data traversals. In: 2nd ACM SIGPLAN International Conference on Functional Programming (ICFP 1997), pp. 164–175 (1997)

    Google Scholar 

  13. Huet, G., Lang, B.: Proving and applying program transformations expressed with second-order patterns. Acta Informatica 11, 31–55 (1978)

    Article  MATH  MathSciNet  Google Scholar 

  14. Launchbury, J., Sheard, T.: Warm fusion: Deriving build-catas from recursive definitions. In: Functional Programming Languages and Computer Architecture, pp. 314–323. Association for Computing Machinery (1995)

    Google Scholar 

  15. Milner, R.: A theory of type polymorphism in programming. Journal of Computer and System Sciences 17, 348–375 (1978)

    Article  MATH  MathSciNet  Google Scholar 

  16. Onoue, Y., Hu, Z., Iwasaki, H., Takeichi, M.: A calculational fusion system hylo. In: Bird, R.S., Meertens, L. (eds.) IFIP TC2 Working Conference on Algorithmic Languages and Calculi, pp. 76–106. Chapman and Hall, Boca Raton (1997)

    Google Scholar 

  17. Pettorossi, A.: Methodologies for transformations and memoing in applicative languages. Ph.D. thesis CST-29-84, University of Edinburgh, Scotland (1984)

    Google Scholar 

  18. Peyton-Jones, S.L.: The Implementation of Functional Programming Languages. Foundations of Computing Series. Prentice-Hall International, Englewood Cliffs (1994)

    Google Scholar 

  19. Peyton-Jones, S.L., Santos, A.L.M.: A transformation-based optimiser for haskell. Science of Computer Programming 32(1-3), 3–48 (1998)

    Article  Google Scholar 

  20. Swierstra, S.D., Duponcheel, L.: Deterministic, error-correcting combinatory parsers. In: Orłowska, E., Alferes, J.J., Moniz Pereira, L. (eds.) JELIA 1996. LNCS, vol. 1126, pp. 184–207. Springer, Heidelberg (1996)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

de Moor, O., Sittampalam, G. (1999). Generic Program Transformation. In: Swierstra, S.D., Oliveira, J.N., Henriques, P.R. (eds) Advanced Functional Programming. AFP 1998. Lecture Notes in Computer Science, vol 1608. Springer, Berlin, Heidelberg. https://doi.org/10.1007/10704973_3

Download citation

  • DOI: https://doi.org/10.1007/10704973_3

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-66241-9

  • Online ISBN: 978-3-540-48506-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics