Static region analysis for mercury

  • Authors:
  • Quan Phan;Gerda Janssens

  • Affiliations:
  • Department of Computer Science, K.U. Leuven, Heverlee, Belgium;Department of Computer Science, K.U. Leuven, Heverlee, Belgium

  • Venue:
  • ICLP'07 Proceedings of the 23rd international conference on Logic programming
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Region-based memory management is a form of compile-time memory management, well-known from the functional programming world. This paper describes a static region analysis for the logic programming language Mercury. We use region points-to graphs to model the partitioning of the memory used by a program into separate regions. The algorithm starts with a region points-to analysis that determines the different regions in the program. We then compute the liveness of the regions by using an extended live variable analysis. Finally, a program transformation adds region annotations to the program for region support. These annotations generate data for a region simulator that generates reports on the memory behaviour of region-annotated programs. Our approach obtains good memory consumption for several benchmark programs; for some of them it achieves optimal memory management.