Experimental evaluation of a generic abstract interpretation algorithm for PROLOG
- 1 January 1994
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 16 (1) , 35-101
- https://doi.org/10.1145/174625.174627
Abstract
Interpretation of PROLOG programs has attracted many researchers in recent years, partly because of the potential for optimization in PROLOG compilers and partly because of the declarative nature of logic programming languages that make them more amenable to optimization than procedural languages. Most of the work, however, has remained at the theoretical level, focusing on the developments of frameworks and the definition of abstract domains. This paper reports our effort to verify experimentally the practical value of this area of research. It describes the design and implementation of the generic abstract interpretation algorithm GAIA that we originally proposed in Le Charlier et al. [1991], its instantiation to a sophisticated abstract domain (derived from Bruynooghe and Janssens [1988]) containing modes, types, sharing, and aliasing, and its evaluation both in terms of performance and accuracy. The overall implementation (over 5000 lines of Pascal) has been systematically analyzed on a variety of programs and compared with the complexity analysis of Le Charlie et al. [1991] and the specific analysis systems of Hickey and Mudambi [1989], Taylor [1989; 1990], Van Roy and Despain [1990], and Warren et al. [1988].Keywords
This publication has 13 references indexed in Scilit:
- Generic abstract interpretation algorithms for Prolog: Two optimization techniques and their experimental evaluationSoftware: Practice and Experience, 1993
- A general framework for semantics-based bottom-up abstract interpretation of logic programsACM Transactions on Programming Languages and Systems, 1993
- Global flow analysis as a practical compilation toolThe Journal of Logic Programming, 1992
- Abstract interpretation and application to logic programsThe Journal of Logic Programming, 1992
- Multiple specialization using minimal-function graph semanticsThe Journal of Logic Programming, 1992
- A practical framework for theabstract interpretation of logic programsThe Journal of Logic Programming, 1991
- Dynamic maintenance of planar digraphs, with applicationsAlgorithmica, 1990
- Solving large combinatorial problems in logic programmingThe Journal of Logic Programming, 1990
- Global compilation of prologThe Journal of Logic Programming, 1989
- Denotational and operational semantics for prologThe Journal of Logic Programming, 1988