Advertisement

Abstract specialization and its application to program parallelization

  • Germán Puebla
  • Manuel Hermenegildo
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1207)

Abstract

Program specialization optimizes programs for known values of the input. It is often the case that the set of possible input values is unknown, or this set is infinite. However, a form of specialization can still be performed in such cases by means of abstract interpretation, specialization then being with respect to abstract values (substitutions), rather than concrete ones. This paper reports on the application of abstract multiple specialization to automatic program parallelization in the &-Prolog compiler. Abstract executability, the main concept underlying abstract specialization, is formalized, the design of the specialization system presented, and a non-trivial example of specialization in automatic parallelization is given.

Keywords

Logic Program Partial Evaluation Abstract Interpretation Abstract Domain Abstract Specialization 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [BCHP96]
    F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Data-flow Analysis of Standard Prolog Programs. In European Symposium on Programming, Sweden, April 1996.Google Scholar
  2. [BGH94a]
    F. Bueno, M. García de la Banda, and M. Hermenegildo. A Comparative Study of Methods for Automatic Compile-time Parallelization of Logic Programs. In Parallel Symbolic Computation, pages 63–73. World Scientific Publishing Company, September 1994.Google Scholar
  3. [BGH94b]
    F. Bueno, M. García de la Banda, and M. Hermenegildo. Effectiveness of Global Analysis in Strict Independence-Based Automatic Program Parallelization. In International Symposium on Logic Programming, pages 320–336. MIT Press, November 1994.Google Scholar
  4. [Bru91]
    M. Bruynooghe. A Practical Framework for the Abstract Interpretation of Logic Programs. Journal of Logic Programming, 10:91–124, 1991.CrossRefGoogle Scholar
  5. [Bul84]
    M.A. Bulyonkov. Polivariant Mixed Computation for Analyzer Programs. Acta Informatica, 21:473–484, 1984.CrossRefMathSciNetGoogle Scholar
  6. [CC77]
    P. Cousot and R. Cousot. Abstract Interpretation: a Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fix-points. In Fourth ACM Symposium on Principles of Programming Languages, pages 238–252, 1977.Google Scholar
  7. [CC94]
    J. Chassin and P. Codognet. Parallel Logic Programming Systems. Computing Surveys, 26(3):295–336, September 1994.CrossRefGoogle Scholar
  8. [CD93]
    C. Consel and O. Danvy. Tutorial Notes on Partial Evaluation. In ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages POPL'93, pages 493–501, Charleston, South Carolina, 1993. ACM.Google Scholar
  9. [CDY91]
    M. Codish, D. Dams, and E. Yardeni. Derivation and Safety of an Abstract Unification Algorithm for Groundness and Aliasing Analysis. In Eighth International Conference on Logic Programming, pages 79–96, Paris, France, June 1991. MIT Press.Google Scholar
  10. [Con83]
    J. S. Conery. The And/Or Process Model for Parallel Interpretation of Logic Programs. PhD thesis, The University of California At Irvine, 1983. Technical Report 204.Google Scholar
  11. [dMSC93]
    Vítor Manuel de Morais Santos Costa. Compile-Time Analysis for the Parallel Execution of Logic Programs in Andorra-I. PhD thesis, University of Bristol, August 1993.Google Scholar
  12. [GB90]
    J. Gallagher and M. Bruynooghe. The Derivation of an Algorithm for Program Specialization. In 1990 International Conference on Logic Programming, pages 732–746. MIT Press, June 1990.Google Scholar
  13. [GCS88]
    J. Gallagher, M. Codish, and E. Shapiro. Specialisation of Prolog and FCP Programs Using Abstract Interpretation. New Generation Computing, 6:159–186, 1988.Google Scholar
  14. [GH91]
    F. Giannotti and M. Hermenegildo. A Technique for Recursive Invariance Detection and Selective Program Specialization. In Proc. 3rd. Int'l Symposium on Programming Language Implementation and Logic Programming, pages 323–335. Springer-Verlag, 1991.Google Scholar
  15. [HMPS95]
    M. Hermenegildo, G. Puebla, K. Marriott, and P. Stuckey. Incremental Analysis of Logic Programs. In International Conference on Logic Programming, pages 797–811. MIT Press, June 1995.Google Scholar
  16. [HR95]
    M. Hermenegildo and F. Rossi. Strict and Non-Strict Independent And-Parallelism in Logic Programs: Correctness, Efficiency, and Compile-Time Conditions. Journal of Logic Programming, 22(1):1–45, 1995.CrossRefGoogle Scholar
  17. [HWD92]
    M. Hermenegildo, R. Warren, and S. Debray. Global Flow Analysis as a Practical Compilation Tool. Journal of Logic Programming, 13(4):349–367, August 1992.CrossRefGoogle Scholar
  18. [JGS93]
    N.D. Jones, C.K. Gomard, and P. Sestoft. Partial Evaluation and Automatic Program Generation. Prenctice Hall, New York, 1993.Google Scholar
  19. [JL92]
    D. Jacobs and A. Langen. Static Analysis of Logic Programs for Independent And-Parallelism. Journal of Logic Programming, 13(2 and 3):291–314, July 1992.CrossRefGoogle Scholar
  20. [JLW90]
    D. Jacobs, A. Langen, and W. Winsborough. Multiple specialization of logic programs with run-time tests. In 1990 International Conference on Logic Programming, pages 718–731. MIT Press, June 1990.Google Scholar
  21. [Kom92]
    J. Komorovski. An Introduction to Partial Deduction. In A. Pettorossi, editor, Meta Programming in Logic, Proceedings of META '92, volume 649 of LNCS, pages 49–69. Springer-Verlag, 1992.Google Scholar
  22. [LS91]
    J.W. Lloyd and J.C. Shepherdson. Partial Evaluation in Logic Programming. Journal of Logic Programming, 11(3–4):217–242, 1991.Google Scholar
  23. [MH89]
    K. Muthukumar and M. Hermenegildo. Complete and Efficient Methods for Supporting Side Effects in Independent/Restricted And-parallelism. In 1989 International Conference on Logic Programming, pages 80–101. MIT Press, June 1989.Google Scholar
  24. [MH91]
    K. Muthukumar and M. Hermenegildo. Combined Determination of Sharing and Freeness of Program Variables Through Abstract Interpretation. In 1991 International Conference on Logic Programming, pages 49–63. MIT Press, June 1991.Google Scholar
  25. [MH92]
    K. Muthukumar and M. Hermenegildo. Compile-time Derivation of Variable Dependency Using Abstract Interpretation. Journal of Logic Programming, 13(2 and 3):315–347, July 1992.CrossRefGoogle Scholar
  26. [MJMB89]
    A. Marien, G. Janssens, A. Mulkers, and M. Bruynooghe. The Impact of Abstract Interpretation: an Experiment in Code Generation. In International Conference on Logic Programming. MIT Press, June 1989.Google Scholar
  27. [PH95]
    G. Puebla and M. Hermenegildo. Implementation of Multiple Specialization in Logic Programs. In Proc. ACM SIGPLAN Symposium on Partial Evaluation and Semantics Based Program Manipulation. ACM, June 1995.Google Scholar
  28. [PH96]
    G. Puebla and M. Hermenegildo. Optimized Algorithms for the Incremental Analysis of Logic Programs. In International Static Analysis Symposium, LNCS 1145, pages 270–284. Springer-Verlag, September 1996.Google Scholar
  29. [RD90]
    P. Van Roy and A. M. Despain. The Benefits of Global Dataflow Analysis for an Optimizing Prolog Compiler. In North American Conference on Logic Programming, pages 501–515. MIT Press, October 1990.Google Scholar
  30. [Son86]
    H. Sondergaard. An application of abstract interpretation of logic programs: occur check reduction. In European Symposium on Programming, LNCS 123, pages 327–338. Springer-Verlag, 1986.Google Scholar
  31. [Tay90]
    A. Taylor. LIPS on a MIPS: Results from a prolog compiler for a RISC. In 1990 International Conference on Logic Programming, pages 174–189. MIT Press, June 1990.Google Scholar
  32. [WHD88]
    R. Warren, M. Hermenegildo, and S. Debray. On the Practicality of Global Flow Analysis of Logic Programs. In Fifth International Conference and Symposium on Logic Programming, pages 684–699, Seattle, Washington, August 1988. MIT Press.Google Scholar
  33. [Win92]
    W. Winsborough. Multiple Specialization using Minimal-Function Graph Semantics. Journal of Logic Programming, 13(2 and 3):259–290, July 1992.MathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Germán Puebla
    • 1
  • Manuel Hermenegildo
    • 1
  1. 1.Department of Computer ScienceTechnical University of Madrid (UPM)Spain

Personalised recommendations