Advertisement

A Module Based Analysis for Memory Reuse in Mercury

  • Nancy Mazur
  • Gerda Janssens
  • Maurice Bruynooghe
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1861)

Abstract

In previous work Bruynooghe, Janssens and Kågedal developed a live-structure analysis for Mercury which detects memory cells available for reuse. Separate compilation of modules is an essential ingredient of a language such as Mercury which supports programming in the large. Hence, to be practical, a live-structure analysis also has to be module based. This paper develops a modular live-structure analysis and extends it with a modular reuse analysis. It also describes preliminary results obtained with a first prototype of the module based analysis.

Keywords

Logic Program Abstract Interpretation Program Point Logic Programming Language Library Module 
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. 1.
    Yves Bekkers and Paul Tarau. Monadic constructs for logic programming. In John Lloyd, editor, Proceedings of the International Symposium on Logic Programming, pages 51–65, Cambridge, December 4–7 1995. MIT Press.Google Scholar
  2. 2.
    Maurice Bruynooghe. A practical framework for the abstract interpretation of logic programs. Journal of Logic Programming, 10(2):91–124, February 1991.Google Scholar
  3. 3.
    Maurice Bruynooghe, Gerda Janssens, and Andreas Kågedal. Live-structure analysis for logic programming languages with declarations. In L. Naish, editor, Proceedings of the Fourteenth International Conference on Logic Programming (ICLP’97), pages 33–47, Leuven, Belgium, 1997. MIT Press.Google Scholar
  4. 4.
    M. Codish, M. Bruynooghe, M. García de la Banda, and M. Hermenegildo. Exploiting goal independence in the analysis of logic programs. Journal of Logic Programming, 32(3):247–261, September 1997.Google Scholar
  5. 5.
    Saumya K. Debray. On copy avoidance in single assignment languages. In David S. Warren, editor, Proceedings of the Tenth International Conference on Logic Programming, pages 393–407, Budapest, Hungary, 1993. The MIT Press.Google Scholar
  6. 6.
    B. Demoen, M. García de la Banda, W. Harvey, K. Marriott, and P. Stuckey. An overview of HAL. In Proceedings of the International Conference on Principles and Practice of Constraint Programming, pages 174–188, Virginia, USA, October 1999. Springer Verlag.Google Scholar
  7. 7.
    G. Gudjonsson and W. Winsborough. Update in place: Overview of the Siva project. In D. Miller, editor, Proceedings of the International Logic Programming Symposium, pages 94–113, Vancouver, Canada, 1993. The MIT Press.Google Scholar
  8. 8.
    Fergus Henderson, Thomas Conway, Somogyi Zoltan, and Jeffery David. The mercury language reference manual. Technical Report 96/10, Dept. of Computer Science, University of Melbourne, February 1996.Google Scholar
  9. 9.
    M. V. Hermenegildo, F. Bueno, G. Puebla, and P. López. Program analysis, debugging, and optimisation using the Ciao preprocessor. In D. De Schreye, editor, Logic programming, Proc. of the 1999 Int. Conf. on Logic Programming, pages 52–66, Las Cruces, NM, December 1999. MIT-Press.Google Scholar
  10. 10.
    S. B. Jones and D. Le Métayer. Compile-time garbage collection by sharing analysis. In Proceedings of the Conference on Functional Programming Languages and Computer Architecture’ 89, Imperial College, London, pages 54–74, New York, NY, 1989. ACM.Google Scholar
  11. 11.
    Andreas Kågedal and Saumya Debray. A practical approach to structure reuse of arrays in single assignment languages. In Lee Naish, editor, Proceedings of the 14th International Conference on Logic Programming, pages 18–32, Cambridge, July 8–11 1997. MIT Press.Google Scholar
  12. 12.
    Feliks Kluźniak. Compile-time garbage collection for ground Prolog. In Robert A. Kowalski and Kenneth A. Bowen, editors, Proceedings of the Fifth International Conference and Symposium on Logic Programming, pages 1490–1505, Seattle, 1988. MIT Press, Cambridge.Google Scholar
  13. 13.
    N. Mazur, G. Janssens, and M. Bruynooghe. Towards memory reuse for Mercury. In Proc. Int. Workshop on Implementation of Declarative Languages (IDL’99), Paris, September 1999.Google Scholar
  14. 14.
    Anne Mulkers, Will Winsborough, and Maurice Bruynooghe. Live-structure dataflow analysis for Prolog. ACM Transactions on Programming Languages and Systems, 16(2):205–258, March 1994.Google Scholar
  15. 15.
    G. Puebla and H. Hermenegildo. Some issues in analysis and specialisation of modular programs. In M. Leuschel, editor, Optimisation and Implementation of Declarative Programs, (WOID’99), a ICLP’99 workshop, 1999. 17 pages.Google Scholar
  16. 16.
    G. Puebla and M. Hermenegildo. Abstract multiple specialisation and its application to program specialisation. The Journal of Logic Programming, 41:279–316, November–December 1999.Google Scholar
  17. 17.
    Zoltan Somogyi, Fergus Henderson, and Thomas Conway. The execution algorithm of Mercury, an efficient purely declarative logic programming language. The Journal of Logic Programming, 29(1–3):17–64, October–December 1996.Google Scholar
  18. 18.
    Simon Taylor. Optimization of Mercury programs. Honours report, Department of Computer Science, University of Melbourne, November 1998.Google Scholar
  19. 19.
    Mads Tofte and Talpin Jean-Pierre. Region-based memory management. Information and Computation, 132(2):109–176, 1997.zbMATHCrossRefMathSciNetGoogle Scholar
  20. 20.
    K. Ueda. Linearity analysis of concurrent logic programs. In M. Leuschel, editor, Optimisation and Implementation of Declarative Programs, (WOID’99), a ICLP’99 workshop, 1999. 14 pages.Google Scholar
  21. 21.
    Philip Wadler. The essence of functional programming. In Conference Record of the Nineteenth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 1–14, Albequerque, New Mexico, January 1992.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • Nancy Mazur
    • 1
  • Gerda Janssens
    • 1
  • Maurice Bruynooghe
    • 1
  1. 1.Department of Computer ScienceK.U.Leuven CelestijnenlaanLeuvenBelgium

Personalised recommendations