Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content

A Framework for Point-Free Program Transformation

  • Conference paper
Implementation and Application of Functional Languages (IFL 2005)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 4015))

Included in the following conference series:

Abstract

The subject of this paper is functional program transformation in the so-called point-free style. By this we mean first translating programs to a form consisting only of categorically-inspired combinators, algebraic data types defined as fixed points of functors, and implicit recursion through the use of type-parameterized recursion patterns. This form is appropriate for reasoning about programs equationally, but difficult to actually use in practice for programming. In this paper we present a collection of libraries and tools developed at Minho with the aim of supporting the automatic conversion of programs to point-free (embedded in Haskell), their manipulation and rule-driven simplification, and the (limited) automatic application of fusion for program transformation.

This work was partially supported by FCT project PURe (POSI/CHS/44304/2002).

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

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.

Similar content being viewed by others

References

  1. 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)

    Article  MATH  MathSciNet  Google Scholar 

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

    Article  MATH  MathSciNet  Google Scholar 

  3. Cunha, A.: Point-free Program Calculation. PhD thesis, Departamento de Informática, Universidade do Minho (2005)

    Google Scholar 

  4. Cunha, A., Pinto, J.S.: Point-free program transformation. Fundamenta Informaticae 66(4), 315–352 (2005); Special Issue on Program Transformation

    MATH  MathSciNet  Google Scholar 

  5. Curien, P.-L.: Categorical Combinators, Sequential Algorithms, and Functional Programming, 2nd edn. Birkhuser (1993)

    Google Scholar 

  6. Danielsson, N.A., Jansson, P.: Chasing bottoms, a case study in program verification in the presence of partial and infinite values. In: Kozen, D. (ed.) MPC 2004. LNCS, vol. 3125, pp. 85–109. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  7. de Moor, O., Sittampalam, G.: Generic program transformation. In: Swierstra, S.D., Oliveira, J.N. (eds.) AFP 1998. LNCS, vol. 1608, pp. 116–149. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  8. Gibbons, J.: Calculating functional programs. In: Blackhouse, R., Crole, R.L., Gibbons, J. (eds.) Algebraic and Coalgebraic Methods in the Mathematics of Program Construction. LNCS, vol. 2297, pp. 148–203. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  9. Hu, Z., Iwasaki, H., Takeichi, M.: Deriving structural hylomorphisms from recursive definitions. In: Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP 1996), pp. 73–82. ACM Press, New York (1996)

    Chapter  Google Scholar 

  10. Jones, M.P.: Type classes with functional dependencies. In: Smolka, G. (ed.) ESOP 2000. LNCS, vol. 1782, p. 230. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  11. Lämmel, R., Visser, J.: Typed combinators for generic traversal. In: Krishnamurthi, S., Ramakrishnan, C.R. (eds.) PADL 2002. LNCS, vol. 2257, pp. 137–154. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  12. Lambek, J.: From lambda calculus to cartesian closed categories. In: Seldin, J.P., Hindley, J.R. (eds.) To H. B. Curry: Essays on Combinatory Logic, pp. 375–402. Academic Press, London (1980)

    Google Scholar 

  13. Meijer, E., Fokkinga, M., Paterson, R.: Functional programming with bananas, lenses, envelopes and barbed wire. In: Hughes, J. (ed.) FPCA 1991. LNCS, vol. 523, Springer, Heidelberg (1991)

    Google Scholar 

  14. Meijer, E., Hutton, G.: Bananas in space: Extending fold and unfold to exponential types. In: Proceedings of the 7th ACM Conference on Functional Programming Languages and Computer Architecture (FPCA 1995). ACM Press, New York (1995)

    Google Scholar 

  15. Norell, U., Jansson, P.: Polytypic programming in haskell. In: Trinder, P., Michaelson, G.J., Peña, R. (eds.) IFL 2003. LNCS, vol. 3145, pp. 168–184. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  16. Proença, J.: Point-free simplification. Technical Report DI-PURe-05.06.01, Universidade do Minho (2005)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Cunha, A., Pinto, J.S., Proença, J. (2006). A Framework for Point-Free Program Transformation. In: Butterfield, A., Grelck, C., Huch, F. (eds) Implementation and Application of Functional Languages. IFL 2005. Lecture Notes in Computer Science, vol 4015. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11964681_1

Download citation

  • DOI: https://doi.org/10.1007/11964681_1

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-69174-7

  • Online ISBN: 978-3-540-69175-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics