An Abstract Interpretation Scheme for Groundness, Freeness, and Sharing Analysis of Logic Programs
Renganathan Sundararajan
Committee:
Technical Report(Dec 1969)
Keywords:

Static, global analyses based on abstract interpretation have been used for deriving properties of logic programs. The analyses differ mostly in the expressiveness of the abstract domains, and the precision and efficiency of abstract domain operations. We extend an abstract domain proposed by others and present new abstract domain operations to derive freeness, roundness, and sharing of variables in logic programs. Analysis of large, non-trivial, practical programs shows that our method is more precise and more efficient at the same time than previous proposals.

Although simple data flow analyses oflogic programs have been shown to be practical by other researchers, it is believed that more informative analyses such as the one presented in this paper are impractical. We show that this is not necessarily so. We defined and implemented an efficient and domain-independent abstract interpreter for computing Minimal Function Graph semantics of logic programs and instantiated it with the abstract domain and corresponding operations presented in this paper. The analysis times compare very favorably with those reported in the literature for much simpler global flow analyses of logic programs. This research is part of a larger effort aimed at efficient parallel execution of logic programs.