Optimization techniques for general purpose fixpoint algorithms practical efficiency for the abstract interpretation of Prolog
Fixpoint computation is a major issue in abstract interpretation. However, little attention has been devoted to the design and implementation of efficient general purpose fixpoint algorithms. This paper provides an experimental evaluation of several general-purpose optimization techniques: stabilization detection, manipulation of the sets of call patterns, and caching of abstract operations. All techniques can be included in a general fixpoint algorithm which can then be proven correct once for all and instantiated to a large variety of abstract semantics. For the sake of the experiments, we focus on a single abstract semantics for Prolog and shows the instantiations of the general-purpose algorithms to this semantics. The experiments are done on two abstract domains and a significant set of benchmarks programs. They seem to demonstrate the practical value of the approach.
Unable to display preview. Download preview PDF.
- 1.M. Bruynooghe. A practical framework for the abstract interpretation of logic programs. Journal of Logic Programming, 10(2):91–124, February 1991.Google Scholar
- 2.P. Cousot and R. Cousot. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Proc.POPL'77, January 1977.Google Scholar
- 3.V. Englebert, B. Le Charlier, D. Roland, and P. Van Hentenryck. Generic abstract interpretation algorithms for Prolog: Two optimization techniques and their experimental evaluation. December 1991. To appear in Software Practice and Experience.Google Scholar
- 4.M. Hermenegildo, R. Warren, and S. Debray. Global Flow Analysis as a Practical Compilation Tool. Journal of Logic Programming, 13(4):349–367, 1992.Google Scholar
- 5.N.D. Jones and A. Mycroft. Dataflow analysis of applicative programs using minimal function graphs. In Proc. POPL'86, 1986.Google Scholar
- 6.B. Le Charlier, K. Musumbu, and P. Van Hentenryck. Efficient and accurate algorithms for the abstract interpretation of Prolog programs. Technical Report 37/90, Namur, Belgium, 1990.Google Scholar
- 7.B. Le Charlier, K. Musumbu, and P. Van Hentenryck. A generic abstract interpretation algorithm and its complexity analysis. In Proc. ICLP'91, Paris, France, June 1991. MIT Press.Google Scholar
- 8.B. Le Charlier and P. Van Hentenryck. Experimental Evaluation of a Generic Abstract Interpretation Algorithm for Prolog. To appear in TOPLAS.Google Scholar
- 9.B. Le Charlier and P. Van Hentenryck. A universal top-down fixpoint algorithm. Technical Report 92-22, Institute of Computer Science, University of Namur, Belgium, April 1992.Google Scholar
- 10.K. Marriott and H. SØndergaard. Semantics-based dataflow analysis of logic programs. In G. Ritter, editor, Information Processing'89, pages 601–606, San Fransisco, California, 1989.Google Scholar
- 11.K. Musumbu. Interprétation Abstraite de Programmes Prolog. PhD thesis, Institute of Computer Science, University of Namur, Belgium, September 1990. In French.Google Scholar
- 12.W. Winsborough. Multiple specialization using minimal-function graph semantics. Journal of Logic Programming, 13(4), February 1992.Google Scholar