Skip to main content

Simple Driving Techniques

  • Chapter
  • First Online:
The Essence of Computation

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

Abstract

Driving was introduced as a program transformation technique by Valentin Turchin in some papers around 1980. It was intended for the programming language REFAL and used in metasystem transitions based on super compilation. In this paper we present one version of driving for a more conventional lisp-like language. Our aim is to extract a simple notion of driving and show that even in this tamed form it has much of the power of more general notions of driving. Our driving technique may be used to simplify functional programs which use function composition and will often be able to remove intermediate data structures used in computations.

This research was partly sponsored by the IT-University in Copenhagen

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. R. M. Burstall and J. Darlington. A Transformation System for Developing Recursive Programs. J.ACM. vol. 24,no 1, pp. 44–67, Jan., 1977.

    Article  MATH  MathSciNet  Google Scholar 

  2. J. Cohen and J. Katcoff. Symbolic Solution of Finite-Difference Equations. Transactions on Mathematical Software. vol. 3,no. 3, pp. 261–271, 1977.

    Article  MATH  Google Scholar 

  3. N. D. Jones. The Essence of Program Transformation by Partial Evaluation and Driving. Logic, Language, and Computation. LNCS vol 792, pp. 206–224, Springer-Verlag, 1994

    Chapter  Google Scholar 

  4. M. Rosendahl. Automatic Program Analysis. Master’s thesis, Department of Computer Science, University of Copenhagen, 1986

    Google Scholar 

  5. M. Rosendahl. Automatic Complexity Analysis. FPCA’89, London, England, ACM Press, pp. 144–156, 1989.

    Google Scholar 

  6. W. L. Scherlis. Program Improvement by Internal Specialization. 8’th Symposium on Principles of Programming Language. ACM, pp. 41–49, Jan., 1981.

    Google Scholar 

  7. Peter Sestoft. The stucture of a Self-applicable Partial Evaluator Programs as Data Objects LNCS, vol 217, pp. 236–256, 1986

    Google Scholar 

  8. M. H. Sørensen. Turchin’s supercompiler revisited. Master’s thesis, Department of Computer Science, University of Copenhagen, 1990

    Google Scholar 

  9. M. H. Sørensen, R. Glück. Introduction to Supercompilation Partial Evaluation: Practice and Theory, LNCS, vol. 1706, pp. 246–270, 1999

    Google Scholar 

  10. V. F. Turchin, R. M. Nirenburg, D. V. Turchin. Experiments with a Supercompiler. ACM Symposium on Lisp and Functional Programming. Pittsburgh PA, August, 1982.

    Google Scholar 

  11. V. F. Turchin. The Concept of a Supercompiler. ACM TOPLAS. vol. 8,no.3, pp. 292–325, July, 1986.

    Article  MATH  MathSciNet  Google Scholar 

  12. P. Wadler. Listlessness is Better than Laziness: Lazy Evaluation and Garbage Collection on Compile-time. ACM Symposium on Lisp and Functional Programming. Austin Texas, August, 1984.

    Google Scholar 

  13. P. Wadler. Deforestation: Transforming programs to eliminate intermediate trees. Theoretical Computer Science, vol. 73, pp. 231–248, 1990

    Article  MATH  MathSciNet  Google Scholar 

  14. B. Wegbreit. Mechanical Program Analysis. C.ACM. vol. 18, pp. 528–539, Sept., 1975.

    Article  MATH  MathSciNet  Google Scholar 

  15. B. Wegbreit. Goal-Directed Program Transformation. IEEE Transaction on Software Engineering, vol SE-2,no 2, pp. 69–80, June, 1976

    Article  MathSciNet  Google Scholar 

  16. B. Wegbreit. Verifying Program Performance. J.ACM. Vol. 23,No. 4, pp. 691–699, October, 1976

    Article  MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2002 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Rosendahl, M. (2002). Simple Driving Techniques. In: Mogensen, T.Æ., Schmidt, D.A., Sudborough, I.H. (eds) The Essence of Computation. Lecture Notes in Computer Science, vol 2566. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-36377-7_18

Download citation

  • DOI: https://doi.org/10.1007/3-540-36377-7_18

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

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

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

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics