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
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
R. M. Burstall and J. Darlington. A Transformation System for Developing Recursive Programs. J.ACM. vol. 24,no 1, pp. 44–67, Jan., 1977.
J. Cohen and J. Katcoff. Symbolic Solution of Finite-Difference Equations. Transactions on Mathematical Software. vol. 3,no. 3, pp. 261–271, 1977.
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
M. Rosendahl. Automatic Program Analysis. Master’s thesis, Department of Computer Science, University of Copenhagen, 1986
M. Rosendahl. Automatic Complexity Analysis. FPCA’89, London, England, ACM Press, pp. 144–156, 1989.
W. L. Scherlis. Program Improvement by Internal Specialization. 8’th Symposium on Principles of Programming Language. ACM, pp. 41–49, Jan., 1981.
Peter Sestoft. The stucture of a Self-applicable Partial Evaluator Programs as Data Objects LNCS, vol 217, pp. 236–256, 1986
M. H. Sørensen. Turchin’s supercompiler revisited. Master’s thesis, Department of Computer Science, University of Copenhagen, 1990
M. H. Sørensen, R. Glück. Introduction to Supercompilation Partial Evaluation: Practice and Theory, LNCS, vol. 1706, pp. 246–270, 1999
V. F. Turchin, R. M. Nirenburg, D. V. Turchin. Experiments with a Supercompiler. ACM Symposium on Lisp and Functional Programming. Pittsburgh PA, August, 1982.
V. F. Turchin. The Concept of a Supercompiler. ACM TOPLAS. vol. 8,no.3, pp. 292–325, July, 1986.
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.
P. Wadler. Deforestation: Transforming programs to eliminate intermediate trees. Theoretical Computer Science, vol. 73, pp. 231–248, 1990
B. Wegbreit. Mechanical Program Analysis. C.ACM. vol. 18, pp. 528–539, Sept., 1975.
B. Wegbreit. Goal-Directed Program Transformation. IEEE Transaction on Software Engineering, vol SE-2,no 2, pp. 69–80, June, 1976
B. Wegbreit. Verifying Program Performance. J.ACM. Vol. 23,No. 4, pp. 691–699, October, 1976
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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