skip to main content
article
Open Access

Improving abstract interpretations by combining domains

Published:01 January 1995Publication History
Skip Abstract Section

Abstract

This article considers static analysis based on abstract interpretation of logic programs over combined domains. It is known that analyses over combined domains provide more information potentially than obtained by the independent analyses. However, the construction of a combined analysis often requires redefining the basic operations for the combined domain. A practical approach to maintain precision in combined analyses of logic programs which reuses the individual analyses and does not redefine the basic operations is illustrated. The advantages of the approach are that (1) proofs of correctness for the new domains are not required and (2) implementations can be reused. The approach is demonstrated by showing that a combined sharing analysis—constructed from “old” proposals—compares well with other “new” proposals suggested in recent literature both from the point of view of efficiency and accuracy.

References

  1. BARBUTI, R., GIACOBAZZl, R., AND LP.VI, G. 1993. A general framework for semanticsbased bottom-up abstract interpretation of logic programs. A CA/{ Trans. Program. Lang. Syst. 15, 1, 133-181. Google ScholarGoogle Scholar
  2. BRUYNOOGHB, IVI. 1991. A practical framework for the abstract interpretation of logic programs. J. Logic Program. 10, 2 (Feb.), 91-124. Google ScholarGoogle Scholar
  3. BRUYNOOGHB, M. AND BOULANGER, D. 1994. Abstract interpretation for (constraint)logic programming. In Constrain( Programming, B. Mayoh, E. Tyugu, and J. Penjam, Eds. NATO Advanced Science Institutes Series, vol. F/131. Springer-Verlag, Berlin, 228-258.Google ScholarGoogle Scholar
  4. BUBNO, F., GARCiA DE LA BANDA, M., AND HBRMBNBGILDO, M. 1994. Effectiveness of global analysis in strict independence-based automatic program parallelization. In Proceedings of the International Symposium on Logic Programming. MIT Press, Cambridge, Mass. Google ScholarGoogle Scholar
  5. CODISH, M., DAMS, D., AND YARDBNI, E. 1994a. Bottom-up abstract interpretation of logic programs. J. Theor. Comput Sci. i~4, 93-125. Google ScholarGoogle Scholar
  6. CODISH, M., DAMS, D., AND "Y-ARDBNI, E. 1991. Derivation and safety of an abstract algorithm for groundness and aliasing analysis. In Proceedings of the 8th International Conference on Logic Programming (Paris, France). MIT Press, Cambridge, Mass., 79-93.Google ScholarGoogle Scholar
  7. COOISH, M., GArtC~A DB LA BANOA, M., BrtUYNOOGHP,, M., AND H~RMBNBG~LOO, M. 1994b. Goal dependent vs. goal independent analysis of logic programs. In Proceedings of the 5th International Conference on Logic Programming and Automated Reasoning. Lecture Notes in Artificial Intelligence, vol. 822. Springer-Verlag, Berlin, 305-320. Google ScholarGoogle Scholar
  8. COOISH, M., MULKBRS, A., BaUYNOOGHB, M., GARC~A OB r~A BANOA, M., AND HErtMBNBOXLDO, M. 1993. Improving abstract interpretations by combining domains. In Proceedings of the A CM Symposium on Partial Evaluation and Semantics-based Program Transformatton. ACM Press, New York, 194-205. Google ScholarGoogle Scholar
  9. CORTESI, A. AND FII~.~ G. 1993. Comparison and design of abstract domains for sharing analysis. In Proceedings of the 8th Itahan Conference on Logtc Programming, G ULP'93 (Gizzeria Lido), D. Sacch, Ed. Institut d'Investigaci6 en Intel-lig~ncia Artificial. CSIC.Google ScholarGoogle Scholar
  10. CORTESI, A. AND FILE, G. 1992. Freeness computation in abstract interpretation. Rapporto Inferno n.2/92 (March), Dip. di Matematica Pura e Applicata, UniversitA di Padova, Italia.Google ScholarGoogle Scholar
  11. CORTESI, A., FILI~, G., AND WINSBOROUQH, W. 1992. Comparison of abstract interpretations. In Proceedings of the I9~h International Colloquium on Automata, Languages, and Programming. Lecture Notes in Computer Science, vol. 623. Sprlnger-Verlag, Berlin. Google ScholarGoogle Scholar
  12. CORTESI, A., LB CHARLIER, B., AND VAN HBNTBNRYCK, P. 1994. Combinations of abstract domains for logic programming. In Conference Record of POPL '9$: 21st A CM SIGPLAN- SIGA CT Symposium on Principles of Programming Languages (Portland, Oreg.). ACM Press, New York, 227-239. Google ScholarGoogle Scholar
  13. COUSOT, P, AND COUSOT, R. 1992. Abstract interpretation and application to logic programs. J. Log, c Program. 13, 2 and 3 (July), 103-179. Google ScholarGoogle Scholar
  14. COUSOT, P. AND COUSOT, R. 1979. Systematic design of program analysis frameworks. In Proceedings of the 6th A CM Symposium Principles of Programming Languages (San Antonio, Tcx.). ACM, New York, 269-282. Google ScholarGoogle Scholar
  15. COUSOT, P. AND COUSOT, R. 1977. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Proceedings of the ~th A CM Sympostum on Principles of Programming Languages (Los Angeles, Calif.). ACM, New York, 238-252. Google ScholarGoogle Scholar
  16. DEBRAY, S. K., (Ed.). 1992. Special issue: Abstract interpretation. Y. Logic Program. 13, 2 and 3 (J~ay).Google ScholarGoogle Scholar
  17. HBRMBNBGILDO, M. AND GRt31~Nt~, K. 1990. &-Prolog and its performance: Exploiting independent and-parallelism. In Proceedings of the 7th }nternattonat Conference on Logic Programmmg (Jerusalem, Israel). MIT Press, Cambridge, Mass., 253-268. Google ScholarGoogle Scholar
  18. HORIUCHI, K. 1992. Less abstract semantics for abstract interpretation of FGHC programs. In Proceedings of the International Conference on Fifth Generatzon Computer Systems (Tokyo, Japan). ICOT, Tokyo, 897-906.Google ScholarGoogle Scholar
  19. JACOBS, D. AND LANGEN, A. 1992. Static analysis of logic programs for independent andparallelism. J. Logic Program. 13, 2 and 3 (July), 291-314. Google ScholarGoogle Scholar
  20. JANSSENS, (}. AND BRUYNOOGHB, M. 1992. Deriving descriptions of possibIe values of program variables by means of abstract interpretation. J. Logic Program. 13, 2 and 3 (July), 205-258. Google ScholarGoogle Scholar
  21. JONES, N. D. AND Sq}NDERGAARD, H. 1987. A semantic-based framework for the abstract interpretation of Prolog. In Abstract Interpretatton of DecIaratzve Languages, S. Abramsky and C. Hankin, Eds. Ellis Horwood, Chichester, U.K., 123-142.Google ScholarGoogle Scholar
  22. LE. CHARLIER, B. AND VAN Ht~NTBNRYCK, P. 1994. Experimental evaluation of a generic abstract interpretation algorithm for prolog. A CM Trans. Program. Lang. Syst. 16, 1, 35-101. Google ScholarGoogle Scholar
  23. MUTHUKUMAR, K. AND HBRMNNI~GILDO, M. 1992. Compile-time derivation of variable dependency using abstract interpretation. J. Logtc Program. 13, 2 and 3 (July), 315-347. Google ScholarGoogle Scholar
  24. MUTHUKUMAR, K. AND HEIRMBNt~GILDO, M. 1991. Combined determination of sharing and freehess of program variables through abstract interpretation. In Proceedings of the 8th International Conference on Logtc Programming (Paris, France). MIT Press, Cambridge, Mass., 49-63.Google ScholarGoogle Scholar
  25. MUTHUKUMAR, K., GARCiA Dt~ LA BANDA, M., AND Ht~RMENEGILDO, M. 1992. Sharing and freeness analysis of logic programs using abstract interpretation. Tech. Rep. (Nov.), T. U. of Madrid (UPM), Facultad Informgtica UPM, Madrid, Spain.Google ScholarGoogle Scholar
  26. NELSON, F. 1988. Strictness analysis and denotational abstract interpretation. Inf. Comput. 76, 29-92. Google ScholarGoogle Scholar
  27. S~NDBRGAARD, H. 1986. An application of abstract interpretation of logic programs: Occur check reduction. In ESOP'86 Procee&ngs European Symposium on Programming, B. Robinet and R. Wilhelm, Eds. Lecture Notes in Computer Science, vol. 213. Springer-Verlag, New York, 327-338. Google ScholarGoogle Scholar
  28. SUNDARARAJAN, PL. AND CONERY, J. 1992. An abstract interpretation scheme for groundness, freeness and sharing analysis of logic programs. In Conference on Foundations of Software Technology and Theorettcal Computer Science. Lecture Notes in Computer Science, vol. 652. Springer-Verlag, New York, 203-216. Google ScholarGoogle Scholar

Index Terms

  1. Improving abstract interpretations by combining domains

            Recommendations

            Reviews

            Francois Aribaud

            In the abstract setting of domain theory, the meaning of a program P is expressed as the least fixed point of a monotonic operator f P on a domain E . In the development of the program, one leaves out the special features of the concrete data. This process can be seen as the definition of a new domain D linked to E by two monotonic operators, abstraction a :E?D and concretization g :D?E , for which a g d =d and e? g a e (? being the natural order on E ). Next, one must approximate f P by an operator g:D?D , which has a finitely computable least fixed point. D is not unique, however; intuitively, such a D gives greater emphasis to a particular type of information available from the concrete data. So it is natural to search for a way to merge two or more <__?__Pub Caret>abstraction domains. There is a direct product construct, but it corresponds to performing only independent analyses of each of the factors. The aim of this paper is to describe a new operation, the reduced product, which removes redundant information between the factors and thus increases efficiency. The authors give constructive definitions of reduced products for examples dealing with the sharing of variables in logic programs, and compare them with other recent analyses. The theory of logic programming has a reputation for being cryptic, a reputation from which this paper does not depart: written in a compact style, especially for the examples, it is hard to read, even for a research paper.

            Access critical reviews of Computing literature here

            Become a reviewer for Computing Reviews.

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            Full Access

            • Published in

              cover image ACM Transactions on Programming Languages and Systems
              ACM Transactions on Programming Languages and Systems  Volume 17, Issue 1
              Jan. 1995
              179 pages
              ISSN:0164-0925
              EISSN:1558-4593
              DOI:10.1145/200994
              Issue’s Table of Contents

              Copyright © 1995 ACM

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 1 January 1995
              Published in toplas Volume 17, Issue 1

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • article

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader