Abstract
Abstract interpretation of Prolog has received much attention in recent years leading to the development of many frameworks and algorithms. One reason for this proliferation comes from the fact that program analyses can be defined at various granularities, achieving a different trade-off between efficiency and precision. The purpose of this paper is to study this tradeoff experimentally. We review the most frequently proposed granularities which can be expressed as a two dimensional space parametrized by the form of the inputs and outputs. The resulting algorithms are evaluated on three abstract domains with very different functionalities, Mode, Prop, and Pattern to assess the impact of granularity on efficiency and accuracy. This is, to our knowledge, the first study of granularity at the algorithm level and some of the results are particularly surprising.
Preview
Unable to display preview. Download preview PDF.
References
R. Barbuti, R. Giacobazzi, and G. Levi. A General Framework for Semantics-based Bottom-up Abstract Interpretation of Logic Programs. (To appear in ACM Transactions on Programming Languages and Systems).
M. Bruynooghe. A Practical Framework for the Abstract Interpretation of Logic Programs. Journal of Logic Programming, 10:91–124, 1991.
M Bruynooghe and G Janssens. An Instance of Abstract Interpretation: Integrating Type and Mode Inferencing. In Proc. Fifth International Conference on Logic Programming, pages 669–683, Seattle, WA, August 1988.
Bruynooghe, M. et al. Abstract Interpretation: Towards the Global Optimization of Prolog Programs. In Proc. 1987 Symposium on Logic Programming, pages 192–204, San Francisco, CA, August 1987.
C. Codognet, P. Codognet, and J.M. Corsini. Abstract Interpretation of Concurrent Logic Languages. In Proceedings of the North American Conference on Logic Programming (NACLP-90), Austin, TX, October 1990.
P. Codognet and G. Filé. Computations, Abstractions and Constraints in Logic Programs. In Proceedings of the Fourth International Conference on Programming Languages (ICCL'92), Oakland, CA, April 1992.
A. Corsini and G. Filé. A Complete Framework for the Abstract Interpretation of Logic Programs: Theory and Applications. Research report, University of Padova, Italy, 1989.
A. Cortesi, G. Filé, and W. Winsborough. Prop revisited: Propositional formulas as abstract domain for groundness analysis. In Proc. Sixth Annual IEEE Symposium on Logic in Computer Science (LICS'91), pages 322–327, 1991.
P Cousot and R. Cousot. Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In Conf. Record of Fourth ACM Symposium on Programming Languages (POPL'77), pages 238–252, Los Angeles, CA, 1977.
S. Debray. On the complexity of dataflow analysis of logic programs. In Proc. 19th ICALP, Vienna, Austria, July 1992.
V. Englebert, B. Le Charlier, D. Roland, and P. Van Hentenryck. Generic Abstract Interpretation Algorithms for Prolog: Two Optimization Techniques and Their Experimental Evaluation. Software Practice and Experience, 23(4), April 1993.
G Filé and P Sottero. Abstract Interpretation for Type Checking. In Third International Symposium on Programming Language Implementation and Logic Programming (PLILP-91), Passau (Germany), August 1991.
M. Hermenegildo, R. Warren, and S. Debray. Global Flow Analysis as a Practical Compilation Tool. Journal of Logic Programming, 13(4):349–367, 1992.
D. Jacobs and A. Langen. Accurate and Efficient Approximation of Variable Aliasing in Logic Programs. In Proceedings of the North-American Conference on Logic Programming (NACLP-89), Cleveland, Ohio, October 1989.
N.D. Jones and A. Mycroft. Dataflow Analysis of Applicative Programs using Minimal Function Graphs. In Proceedings of 13th ACM symposium on Principles of Programming Languages, pages 123–142, St. Petersburg, Florida, 1986.
T. Kanamori and T. Kawamura. Analysing Success Patterns of Logic Programs by Abstract Hybrid Interpretation. Technical report, ICOT, 1987.
B. Le Charlier, K. Musumbu, and P. Van Hentenryck. A Generic Abstract Interpretation Algorithm and Its Complexity Analysis (Extended Abstract). In Eighth International Conference on Logic Programming (ICLP-91), Paris (France), June 1991.
B. Le Charlier and P. Van Hentenryck. Experimental Evaluation of a Generic Abstract Interpretation Algorithm for Prolog. ACM Transactions on Programming Languages and Systems. To appear. An extended abstract appeared in the Proceedings of Fourth IEEE International Conference on Computer Languages (ICCL'92), San Francisco, CA, April 1992.
B. Le Charlier and P. Van Hentenryck. A Universal Top-Down Fixpoint Algorithm. Technical Report CS-92-25, CS Department, Brown University, 1992.
B. Le Charlier and P. Van Hentenryck. Groundness Analysis for Prolog: Implementation and Evaluation of the Domain Prop. In Proceedings of the ACM Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM93), Copenhagen, Denmark, June 1993.
K. Marriott and H. Sondergaard. Notes for a Tutorial on Abstract Interpretation of Logic Programs. North American Conference on Logic Programming, Cleveland, Ohio, 1989.
K. Marriott and H. Sondergaard. Semantics-based Dataflow Analysis of Logic Programs. In Information Processing-89, pages 601–606, San Francisco, CA, 1989.
K. Marriott and H. Sondergaard. Abstract Interpretation of Logic Programs: the Denotational Approach, June 1990. To appear in ACM Transaction on Programming Languages.
K. Marriott and H. Sondergaard. Analysis of Constraint Logic Programs. In Proceedings of the North American Conference on Logic Programming (NACLP-90), Austin, TX, October 1990.
C. Mellish. Abstract Interpretation of Prolog Programs, pages 181–198. Ellis Horwood, 1987.
K. Musumbu. Interpretation Abstraite de Programmes Prolog. PhD thesis, University of Namur (Belgium), September 1990.
K. Muthukumar and M. Hermenegildo. Determination of Variable Dependence Information Through Abstract Interpretation. In Proceedings of the North American Conference on Logic Programming (NACLP-89), Cleveland, Ohio, October 1989.
U. Nilsson. A Systematic Approach to Abstract Interpretation of Logic Programs. PhD thesis, Department of Computer and Information Science, Linkoping University, Linkoping (Sweden), December 1989.
U. Nilsson. Systematic Semantic Approximations of Logic Programs. In Proceedings of PLILP 90, pages 293–306, Linkoping, Sweeden, August 1990.
R.A. O'Keefe. Finite Fixed-Point Problems. In J-L. Lassez, editor, Fourth International Conference on Logic Programming, pages 729–743, Melbourne, Australia, 1987.
A. Taylor. Removal of Dereferencing and Trailing in Prolog Compilation. In Sixth International Conference on Logic Programming, Lisbon, Portugal, June 1989.
A. Taylor. LIPS on MIPS: Results From a Prolog Compiler for a RISC. In Seventh International Conference on Logic Programming (ICLP-90), Jerusalem, Israel, June 1990.
P. Van Hentenryck, O. Degimbe, B. Le Charlier, and L. Michel. Abstract Interpretation of Prolog Based on OLDT-Resolution. Technical Report No. CS-93-05, CS Department, Brown University, 1993.
P. Van Hentenryck, O. Degimbe, B. Le Charlier, and L. Michel. The impact of Granularity in Abstract Interpretation of Prolog. Technical report, CS Department, Brown University, 1993. Forthcoming.
D.S. Warren. Memoization for Logic Programs. Communication of the ACM, 35(3), March 1992.
R. Warren, M. Hermedegildo, and S. Debray. On the Practicality of Global Flow Analysis of Logic Programs. In Proc. Fifth International Conference on Logic Programming, pages 684–699, Seattle, WA, August 1988.
W. Winsborough. Multiple Specialization using Minimal-Function Graph Semantics. Journal of Logic Programming, 13(4), 1992.
W.H. Winsborough. A Minimal Function Graph Semantics for Logic Programs. Technical Report TR-711, Computer Science Department, University of Wisconsin at Madison, August 1987.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1993 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Van Hentenryck, P., Degimbe, O., Le Charlier, B., Michel, L. (1993). The impact of granularity in abstract interpretation of Prolog. In: Cousot, P., Falaschi, M., Filé, G., Rauzy, A. (eds) Static Analysis. WSA 1993. Lecture Notes in Computer Science, vol 724. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57264-3_25
Download citation
DOI: https://doi.org/10.1007/3-540-57264-3_25
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57264-0
Online ISBN: 978-3-540-48027-3
eBook Packages: Springer Book Archive