Skip to main content

Transformations for efficient evaluations in functional programming

  • Transformation
  • Conference paper
  • First Online:
Book cover Programming Languages: Implementations, Logics, and Programs (PLILP 1997)

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

Abstract

Rewriting is a suitable mechanism to implement functional programming languages. The definition of efficient evaluation strategies is a natural concern in this setting. Recently we have shown that, by imposing some simple restrictions on the replacements which are allowed for the arguments of functions, we can obtain efficient head-evaluations of terms in a certain class of programs. We are also able to completely evaluate terms, but in this case, the efficiency of computation can be compromised. This paper concerns the definition of program transformations that enable efficient but still complete evaluation of function calls

This work has been partially supported by CICYT under grant TIC 95-0433-C03-03.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. N. Dershowitz and J.P. Jouannaud. Rewrite Systems. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, volume B: Formal Models and Semantics, pages 243–320. Elsevier, Amsterdam and The MIT Press, Cambridge, MA, 1990.

    Google Scholar 

  2. G. Huet and J.J. Lévy. Computations in orthogonal term rewriting systems. In J.L. Lassez and G. Plotkin, editors, Computational logic: essays in honour of J. Alan Robinson, pages 395–414 and 415-443. The MIT Press, Cambridge, MA, 1991.

    Google Scholar 

  3. J.F.Th. Kamperman and H.R. Walters. Lazy Rewriting and Eager Machinery. In J. Hsiang, editor, Proc. of 6th International Conference on Rewriting Techniques and Applications, RTA'95, LNCS 914:147–162, Springer-Verlag, Berlin, 1995.

    Google Scholar 

  4. J.W. Klop. Term Rewriting Systems. In S. Abramsky, D.M. Gabbay and T.S.E. Maibaum. Handbook of Logic in Computer Science, volume 3, pages 1–116. Oxford University Press, 1992.

    Google Scholar 

  5. S. Lucas. Context-sensitive computations in functional and functional logic programs. Journal of Functional and Logic Programming, 1997, to appear.

    Google Scholar 

  6. S. Lucas. Fundamentals of context-sensitive rewriting. In M. Bartôsek, J. Staudek and J. Wiedermann, editors, Proc. of XXII Seminar on Current Trends in Theory and Practice of Informatics, SOFSEM'95, LNCS 1012:405–412, Springer-Verlag, Berlin, 1995.

    Google Scholar 

  7. S. Lucas. Needed Reductions with Context-Sensitive Rewriting. In M. Hanus and K. Meinke, editors, Proc. of 6th International Conference on Algebraic and Logic Programming, ALP'97, LNCS to appear.

    Google Scholar 

  8. M.J. O'Donnell. Equational Logic as a Programming Language. The MIT Press, Cambridge, Massachusetts, 1985.

    Google Scholar 

  9. C. Reade. Elements of Functional Programming. Addison-Wesley Publishing Company, 1993.

    Google Scholar 

  10. R.C. Sekar, S. Pawagi and I.V. Ramakrishnan. Transforming Strongly Sequential Rewrite Systems with Constructors for Efficient Parallel Execution. In N. Dershowitz, editor, Proc. of 3rd International Conference on Rewriting Techniques and Applications, RTA'89, LNCS 355:404–418, Springer-Verlag, Berlin, 1989.

    Google Scholar 

  11. Y. Toyama. Strong Sequentiality of Left-Linear Overlapping Rewrite Systems. In Proc. of 7th IEEE Symposium on Logic in Computer Science, Santa Cruz, CA, pages 274–284, 1992.

    Google Scholar 

  12. H. Zantema. Termination of Context-Sensitive Rewriting. In H. Comon, editor, Proc. of 8th International Conference on Rewriting Techniques and Applications, RTA'97, LNCS 1232:172–186, Springer-Verlag, Berlin, 1997.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Hugh Glaser Pieter Hartel Herbert Kuchen

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Lucas, S. (1997). Transformations for efficient evaluations in functional programming. In: Glaser, H., Hartel, P., Kuchen, H. (eds) Programming Languages: Implementations, Logics, and Programs. PLILP 1997. Lecture Notes in Computer Science, vol 1292. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0033841

Download citation

  • DOI: https://doi.org/10.1007/BFb0033841

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-63398-3

  • Online ISBN: 978-3-540-69537-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics