A description in the Jacobs and Langen domain is a set of sharing groups where each sharing group is a set of program variables. The presence of a sharing group in a description indicates that all the variables in the group can be bound to terms that contain a common variable. The expressiveness of the domain, alas, is compromised by its intractability. Not only are descriptions potentially exponential in size, but abstract unification is formulated in terms of an operation, called closure under union, that is also exponential. This paper shows how abstract unification can be reformulated so that closures can be collapsed in two senses. Firstly, one closure operation can be folded into another so as to reduce the total number of closures that need to be computed. Secondly, the remaining closures can be applied to smaller descriptions. Therefore, although the operation remains exponential, the overhead of closure calculation is reduced. Experimental evaluation suggests that the cost of analysis can be substantially reduced by collapsing closures.
KeywordsLogic Program Abstract Interpretation Program Variable Abstract Domain Closure Operation
Unable to display preview. Download preview PDF.
- 3.Bagnara, R., Zaffanella, E., Hill, P.: Enhanced Sharing Analysis Techniques: A Comprehensive Evaluation. Theory and Practice of Logic Programming 5 (2005)Google Scholar
- 12.Gallagher, J.: A Bottom-Up Analysis Toolkit. Technical Report 95-016, Department of Computer Science, University of Bristol (Invited paper at WAILL) (1995)Google Scholar
- 13.Hans, W., Winkler, S.: Aliasing and Groundness Analysis of Logic Programs through Abstract Interpretation and its Safety. Technical Report Nr. 92-27, RWTH Aachen, Lehrstuhl für Informatik II Ahornstraße 55, W-5100 Aachen (1992)Google Scholar
- 15.Li, X., King, A., Lu, L.: Correctness of Closure Collapsing. Technical Report 2-06, University of Kent (2006), http://www.cs.kent.ac.uk/pubs/2006/2370
- 19.Søndergaard, H.: An Application of Abstract Interpretation of Logic Programs: Occur Check Reduction. In: Robinet, B., Wilhelm, R. (eds.) ESOP 1986. LNCS, vol. 213, pp. 327–338. Springer, Heidelberg (1986)Google Scholar