Skip to main content
Log in

Combining Program and Data Specialization

  • Published:
Higher-Order and Symbolic Computation

Abstract

Program and data specialization have always been studied separately, although they are both aimed at processing early computations. Program specialization encodes the result of early computations into a new program; while data specialization encodes the result of early computations into data structures.

In this paper, we present an extension of the Tempo specializer, which performs both program and data specialization. We show how these two strategies can be integrated in a single specializer. This new kind of specializer provides the programmer with complementary strategies which widen the scope of specialization. We illustrate the benefits and limitations of these strategies and their combination on a variety of programs.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Barzdins, G.J. and Bulyonkov, M.A. Mixed computation and translation: Linearisation and decomposition of compilers. Preprint 791 from Computing Centre of Siberian division of USSR Academy of Sciences, p. 32, Novosibirsk, 1988.

  2. Consel, C. and Danvy, O. Tutorial notes on partial evaluation. In Conference Record of the Twentieth Annual ACM SIGPLAN-SIGACT Symposium on Principles Of Programming Languages, Charleston, SC, USA, January 1993. ACM Press, pp. 493–501.

  3. Consel, C., Hornof, L., Lawall, J., Marlet, R., Muller, G., Noyé, J., Thibault, S., and Volanschi, N. Tempo: specializing systems applications and beyond. ACM Computing Surveys, Symposium on Partial Evaluation 30(3), 1998.

  4. Consel, C., Hornof, L., Noel, F., Noyé, J., and Volanschi, E.N. A uniform approach for compile-time and run-time specialization. In Partial Evaluation, International Seminar, Dagstuhl Castle, February 1996, Danvy, O., Glück, R, and Thiemann, P. (Eds.). Lecture Notes in Computer Science, vol. 1110, pp. 54–72.

  5. Glück, R., Nakashige, R., and Zöchling, R. Binding-time analysis applied to mathematical algorithms. In System Modelling and Optimization, Doležal, J. and Fidler, J. (Eds.). Chapman & Hall, 1995, pp. 137–146.

  6. Guenter, B., Knoblock, T.B., and Ruf, E. Specializing shaders. In Computer Graphics Proceedings, Annual Conference Series. ACM Press, 1995, pp. 343–350.

  7. Hornof, L. Static Analyses for the Effective Specialization of Realistic Applications. Ph.D. Thesis, Université de Rennes I, June 1997.

  8. Hornof, L. and Noyé, J. Accurate binding-time analysis for imperative languages: flow, context, and return sensitivity. Theoretical Computer Science, 248(1/2), 2000.

  9. Hornof, L., Noyé, J., and Consel, C. Effective specialization of realistic programs via use sensitivity. In Proceedings of the Fourth International Symposium on Static Analysis, SAS'97, Paris, France, September 1997, Van Hentenryck, P. (Ed.). Lecture Notes in Computer Science, vol. 1302. Springer-Verlag, pp. 293–314.

  10. Jones, N.D., Gomard, C., and Sestoft, P. Partial Evaluation and Automatic Program Generation, International Series in Computer Science. Prentice-Hall, June 1993.

  11. Knoblock, T.B. and Ruf, E. Data specialization. In Proceedings of the ACM SIGPLAN’ 96 Conference on Programming Language Design and Implementation, Philadelphia, PA, May 1996, pp. 215–225. ACM SIGPLAN Notices 31(5). Also TR MSR-TR-96-04, Microsoft Research, February 1996.

  12. Lawall, J.L. Faster Fourier transforms via automatic program specialization. In Partial Evaluation--Practice and Theory, Proceedings of the 1998 DIKU International Summerschool, Copenhagen, Denmark, July 1998.

  13. Malmkjær, K. Program and Data Specialization: Principles, Applications, and Self-Application. Master's thesis, DIKU University of Copenhagen, August 1989.

  14. Muller, G., Marlet, R., Volanschi, E.N., Consel, C., Pu, C., and Goel, A. Fast, optimized Sun RPC using automatic program specialization. In Proceedings of the 18th International Conference on Distributed Computing Systems, Amsterdam, The Netherlands, May 1998. IEEE Computer Society Press, pp. 240–249.

  15. Muller, G., Volanschi, E.N., and Marlet, R. Scaling up partial evaluation for optimizing the Sun commercial RPC protocol. In ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, Amsterdam, The Netherlands, June 1997. ACM Press, pp. 116–125.

  16. Noel, F., Hornof, L., Consel, C., and Lawall, J. Automatic, template-based run-time specialization: implementation and experimental study. In International Conference on Computer Languages, Chicago, IL, May 1998. IEEE Computer Society Press, pp. 132–142. Also available as IRISA report PI-1065.

  17. Thibault, S., Bercot, L., Consel, C., Marlet, R., Muller, G., and Lawall, J. Experiments in program compilation by interpreter specialization. Research Report 3588, INRIA, Rennes, France, December 1998.

    Google Scholar 

  18. Thibault, S., Consel, C., and Muller, G. Safe and efficient active network programming. In 17th IEEE Symposium on Reliable Distributed Systems, West Lafayette, Indiana, October 1998, pp. 135–143.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Chirokoff, S., Consel, C. & Marlet, R. Combining Program and Data Specialization. Higher-Order and Symbolic Computation 12, 309–335 (1999). https://doi.org/10.1023/A:1010035401770

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1010035401770

Navigation