Skip to main content

Partial Evaluation: Concepts and Applications

  • Conference paper
  • 652 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 1706))

Abstract

This is an introduction to the idea of partial evaluation. It is meant to be fairly non-technical and focuses mostly on what and why rather than how.

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

Buying options

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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. S.M. Abramov and N.V. Kondratjev. A compiler based on partial evaluation. In Problems of Applied Mathematics and Software Systems, pages 66–69. Moscow State University, Moscow, USSR, 1982. (In Russian).

    Google Scholar 

  2. L.O. Andersen. Self-applicable C program specialization. In Partial Evaluation and Semantics-Based Program Manipulation, San Francisco, California, June 1992 (Technical Report YALEU/DCS/RR-909), pages 54–61. New Haven, CT: Yale University, June 1992.

    Google Scholar 

  3. L.O. Andersen. Program Analysis and Specialization for the C Programming Language. PhD thesis, DIKU, University of Copenhagen, Denmark, 1994. DIKU Research Report 94/19.

    Google Scholar 

  4. P.H. Andersen. Partial evaluation applied to ray tracing. DIKU Research Report 95/2, DIKU, University of Copenhagen, Denmark, 1995.

    Google Scholar 

  5. L. Beckman et al. A partial evaluator, and its use as a programming tool. Artificial Intelligence, 7(4):319–357, 1976.

    Article  MATH  Google Scholar 

  6. A. Berlin and D. Weise. Compiling scientific code using partial evaluation. IEEE Computer, 23(12):25–37, December 1990.

    Article  Google Scholar 

  7. A.A. Berlin. Partial evaluation applied to numerical computation. In 1990 ACM Conference on Lisp and Functional Programming, Nice, France, pages 139–150. New York: ACM, 1990.

    Chapter  Google Scholar 

  8. L. Birkedal and M. Welinder. Partial evaluation of Standard ML. Master’s thesis, DIKU, University of Copenhagen, Denmark, 1993. DIKU Research Report 93/22.

    Google Scholar 

  9. A. Bondorf. Self-Applicable Partial Evaluation. PhD thesis, DIKU, University of Copenhagen, Denmark, 1990. Revised version: DIKU Report 90/17.

    Google Scholar 

  10. M.A. Bulyonkov and A.P. Ershov. How do ad-hoc compiler constructs appear in universal mixed computation processes? In D. Bjørner, A.P. Ershov, and N.D. Jones, editors, Partial Evaluation and Mixed Computation, pages 65–81. Amsterdam: North-Holland, 1988.

    Google Scholar 

  11. M. Codish and E. Shapiro. Compiling or-parallelism into and-parallelism. In E. Shapiro, editor, Third International Conference on Logic Programming, London, United Kingdom (Lecture Notes in Computer Science, vol. 225), pages 283–297. Berlin: Springer-Verlag, 1986. Also in New Generation Computing 5 (1987) 45–61.

    Chapter  Google Scholar 

  12. C. Consel and S.C. Khoo. Semantics-directed generation of a Prolog compiler. In J. Maluszyński and M. Wirsing, editors, Programming Language Implementation and Logic Programming, 3rd International Symposium, PLILP’ 91, Passau, Germany, August 1991 (Lecture Notes in Computer Science, vol. 528), pages 135–146. Berlin: Springer-Verlag, 1991.

    Google Scholar 

  13. P. Emanuelson and A. Haraldsson. On compiling embedded languages in Lisp. In 1980 Lisp Conference, Stanford, California, pages 208–215. New York: ACM, 1980.

    Google Scholar 

  14. Y. Futamura. Partial evaluation of computation process — an approach to a compiler-compiler. Systems, Computers, Controls, 2(5):45–50, 1971.

    Google Scholar 

  15. J. Gallagher. Transforming logic programs by specialising interpreters. In ECAI-86. 7th European Conference on Artificial Intelligence, Brighton Centre, United Kingdom, pages 109–122. Brighton: European Coordinating Committee for Artificial Intelligence, 1986.

    Google Scholar 

  16. A. Glenstrup, H. Makholm, and J.P. Secher. C-mix: Specialization of C programs. In Partial Evaluation: Practice and Theory. Springer-Verlag, 1998.

    Google Scholar 

  17. R. Glück, R. Nakashige, and R. Zöchling. Binding-time analysis applied to mathematical algorithms. In J. Doležal and J. Fidler, editors, System Modelling and Optimization, pages 137–146. Chapman and Hall, 1995.

    Google Scholar 

  18. C. Goad. Automatic construction of special purpose programs. In D.W. Loveland, editor, 6th Conference on Automated Deduction, New York, USA (Lecture Notes in Computer Science, vol. 138), pages 194–208. Berlin: Springer-Verlag, 1982.

    Chapter  Google Scholar 

  19. C.K. Hoist and J. Launchbury. Handwriting cogen to avoid problems with static typing. In Draft Proceedings, Fourth Annual Glasgow Workshop on Functional Programming, Skye, Scotland, pages 210–218. Glasgow University, 1991.

    Google Scholar 

  20. H.F. Jacobsen. Speeding up the back-propagation algorithm by partial evaluation. Student Project 90-10-13, DIKU, University of Copenhagen, Denmark. (In Danish), October 1990.

    Google Scholar 

  21. N.D. Jones, C.K. Gomard, and P. Sestoft. Partial Evaluation and Automatic Program Generation. Englewood Cliffs, NJ: Prentice Hall, 1993.

    MATH  Google Scholar 

  22. J. Jørgensen. Generating a compiler for a lazy language by partial evaluation. In Nineteenth ACM Symposium on Principles of Programming Languages, Albuquerque, New Mexico, January 1992, pages 258–268. New York: ACM, 1992.

    Google Scholar 

  23. S.C. Kleene. Introduction to Metamathematics. Princeton, NJ: D. van Nostrand, 1952.

    MATH  Google Scholar 

  24. J. Launchbury. A strongly-typed self-applicable partial evaluator. In J. Hughes, editor, Functional Programming Languages and Computer Architecture, Cambridge, Massachusetts, August 1991 (Lecture Notes in Computer Science, vol. 523), pages 145–164. ACM, Berlin: Springer-Verlag, 1991.

    Google Scholar 

  25. T. Mogensen. The application of partial evaluation to ray-tracing. Master’s thesis, DIKU, University of Copenhagen, Denmark, 1986.

    Google Scholar 

  26. T. Mogensen and P. Sestoft. Partial evaluation. In Allen Kent and James G. Williams, editors, Encyclopedia of Computer Science and Technology, volume 37, pages 247–279. Marcel Dekker, 270 Madison Avenue, New York, New York 10016, 1997.

    Google Scholar 

  27. F.G. Pagan. Converting interpreters into compilers. Software — Practice and Experience, 18(6):509–527, June 1988.

    Article  Google Scholar 

  28. F.G. Pagan. Comparative efficiency of general and residual parsers. Sigplan Notices, 25(4):59–65, April 1990.

    Article  Google Scholar 

  29. G. Richardson. The realm of Nevryon. Micro User, June 1991.

    Google Scholar 

  30. S. Safra and E. Shapiro. Meta interpreters for real. In H.-J. Kugler, editor, Information Processing 86, Dublin, Ireland, pages 271–278. Amsterdam: North-Holland, 1986.

    Google Scholar 

  31. A. Takeuchi and K. Furukawa. Partial evaluation of Prolog programs and its application to meta programming. In H.-J. Kugler, editor, Information Processing 86, Dublin, Ireland, pages 415–420. Amsterdam: North-Holland, 1986.

    Google Scholar 

  32. V.F. Turchin et al., Bazisnyj Refal i ego realizacija na vychislitel’nykh mashinakh (Basic Refal and Its Implementation on Computers). Moscow: GOSSTROJ SSSR, CNIPIASS, 1977. (In Russian).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Mogensen, T.Æ. (1999). Partial Evaluation: Concepts and Applications. In: Hatcliff, J., Mogensen, T.Æ., Thiemann, P. (eds) Partial Evaluation. DIKU 1998. Lecture Notes in Computer Science, vol 1706. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-47018-2_1

Download citation

  • DOI: https://doi.org/10.1007/3-540-47018-2_1

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-66710-0

  • Online ISBN: 978-3-540-47018-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics