Skip to main content

Extracting the Essence of Distillation

  • Conference paper
Perspectives of Systems Informatics (PSI 2009)

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

Abstract

In this paper, we give a re-formulation of our previously defined distillation algorithm, which can automatically transform higher-order functional programs into equivalent tail-recursive programs. Our re-formulation simplifies the presentation of the transformation and hopefully makes it easier to understand. Using distillation, it is possible to produce superlinear improvement in the run-time of programs. This represents a significant advance over deforestation, partial evaluation and positive supercompilation, which can only produce a linear improvement.

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.

Similar content being viewed by others

References

  1. Jones, N., Gomard, C., Sestoft, P.: Partial Evaluation and Automatic Program Generation. Prentice Hall, Englewood Cliffs (1993)

    MATH  Google Scholar 

  2. Wadler, P.: Deforestation: Transforming Programs to Eliminate Trees. In: Ganzinger, H. (ed.) ESOP 1988. LNCS, vol. 300, pp. 344–358. Springer, Heidelberg (1988)

    Google Scholar 

  3. Turchin, V.: The Concept of a Supercompiler. ACM Transactions on Programming Languages and Systems 8(3), 90–121 (1986)

    Article  MathSciNet  Google Scholar 

  4. Sørensen, M., Glück, R., Jones, N.: A Positive Supercompiler. Journal of Functional Programming 6(6), 811–838 (1996)

    Article  Google Scholar 

  5. Sørensen, M.: Turchin’s Supercompiler Revisited. Master’s thesis, Department of Computer Science, University of Copenhagen, DIKU-rapport 94/17 (1994)

    Google Scholar 

  6. Wadler, P.: The Concatenate Vanishes. FP Electronic Mailing List (December 1987)

    Google Scholar 

  7. Hamilton, G.W.: Distillation: Extracting the Essence of Programs. In: Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, pp. 61–70 (2007)

    Google Scholar 

  8. Higman, G.: Ordering by Divisibility in Abstract Algebras. Proceedings of the London Mathemtical Society 2, 326–336 (1952)

    Article  MATH  MathSciNet  Google Scholar 

  9. Kruskal, J.: Well-Quasi Ordering, the Tree Theorem, and Vazsonyi’s Conjecture. Transactions of the American Mathematical Society 95, 210–225 (1960)

    Article  MATH  MathSciNet  Google Scholar 

  10. Dershowitz, N., Jouannaud, J.P.: Rewrite Systems. In: van Leeuwen, J. (ed.) Handbook of Theoretical Computer Science, pp. 243–320. Elsevier, MIT Press (1990)

    Google Scholar 

  11. Sørensen, M., Glück, R.: An Algorithm of Generalization in Positive Supercompilation. In: Tison, S. (ed.) CAAP 1994. LNCS, vol. 787, pp. 335–351. Springer, Heidelberg (1994)

    Chapter  Google Scholar 

  12. Marlet, R.: Vers une Formalisation de l’Évaluation Partielle. PhD thesis, Université de Nice - Sophia Antipolis (1994)

    Google Scholar 

  13. Bol, R.: Loop Checking in Partial Deduction. Journal of Logic Programming 16(1-2), 25–46 (1993)

    Article  MATH  MathSciNet  Google Scholar 

  14. Leuschel, M.: On the Power of Homeomorphic Embedding for Online Termination. In: Proceedings of the International Static Analysis Symposium, pp. 230–245 (1998)

    Google Scholar 

  15. Miller, D.: A Logic Programming Language with Lambda-Abstraction, Function Variables and Simple Unification. In: Schroeder-Heister, P. (ed.) ELP 1989. LNCS, vol. 475, pp. 253–281. Springer, Heidelberg (1991)

    Chapter  Google Scholar 

  16. Nipkow, T.: Functional Unification of Higher-Order Patterns. In: Eighth Annual Symposium on Logic in Computer Science, pp. 64–74 (1993)

    Google Scholar 

  17. Hamilton, G.W.: Distilling Programs for Verification. Electronic Notes in Theoretical Computer Science 190(4), 17–32 (2007)

    Article  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Hamilton, G.W. (2010). Extracting the Essence of Distillation. In: Pnueli, A., Virbitskaite, I., Voronkov, A. (eds) Perspectives of Systems Informatics. PSI 2009. Lecture Notes in Computer Science, vol 5947. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-11486-1_13

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-11486-1_13

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-11485-4

  • Online ISBN: 978-3-642-11486-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics