skip to main content
10.1145/174675.177880acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article
Free Access

Combinations of abstract domains for logic programming

Published:01 February 1994Publication History

ABSTRACT

Abstract interpretation [7] is a systematic methodology to design static program analysis which has been studied extensively in the logic programming community, because of the potential for optimizations in logic programming compilers and the sophistication of the analyses which require conceptual support. With the emergence of efficient generic abstract interpretation algorithms for logic programming, the main burden in building an analysis is the abstract domain which gives a safe approximation of the concrete domain of computation. However, accurate abstract domains for logic programming are often complex because of the variety of analyses to perform their interdependence, and the need to maintain structural information. The purpose of this paper is to propose conceptual and software support for the design of abstract domains. It contains two main contributions: the notion of open product and a generic pattern domain. The open product is a new way of combining abstract domains allowing each combined domain to benefit from information from the other components through the notions of queries and open operations. The open product is general-purpose and can be used for other programming paradigms as well. The generic pattern domain Pat (R)automatically upgrades a domain D with structural information yielding a more accurate domain Pat (D) without additional design or implementation cost. The two contributions are orthogonal and can be combined in various ways to obtain sophisticated domains while imposing minimal requirements on the designer. Both contributions are characterized theoretically and experimentally and were used to design very complex abstract domains such as PAT(OProp⊗OMode⊗OPS) which would be very difficult to design otherwise. On this last domain, designers need only contribute about 20% (about 3,400 lines) of the complete system (about 17,700 lines).

References

  1. 1.A. Bossi, M. Gabbrielli, G Levi, and M-C. Meg. Contribution to the Semantics of Open Logic Programs. In Proc. of Int. Conf. on Fifth Generation Computer Systems, Tokyo, June 1992.]]Google ScholarGoogle Scholar
  2. 2.M. Bruynooghe. A Practical Framework for the Abstract Interpretation of Logic Programs. Journal of Logic Programming, 10:91-124, 1991.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3.M. Codish, A. Mulkers, M. Bruynooghe, M. Garcia de la Bands, and M. Hermenegildo. improving Abstract Interpretations by Combining Domains. In Proceedings of the A CM Symposium on Partial Evaluation and Semantics.Based Program Manipulation (PEPM93), Copenhagen, Denmark, June 1993.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4.A. Cortesi, G. Ffl~, 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.]]Google ScholarGoogle ScholarCross RefCross Ref
  5. 5.A. Cortesi, G. Fild, and W. Winsborough. Comparison of Abstract Interpretations. In Proc. 19th International; Colloquium on Automata, Languages and Programming (ICALP'92}, 1992.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6.A. Cortesi, B. Le Charlier, and P. Van Hentenryck. Conceptual and Software Support for Abstract Domain Design: Generic Structural Domain and Open Product. Technical Report CS-93-13, CS Department, Brown University, 1993.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7.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 o/Fourth A CM Symposium on Programming Languages (POPL'77), pages 238-252, Los Angeles, CA, 1977.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8.P Cousot and R. Cousot. Systematic Design of Program Analysis Frameworks. In Conf. Record of Sixth A CM Symposium on Programming Languages (POPL'79), pages 269-282, San Antonio, Tx, 1979.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9.P. Cousot and R. Cousot. Abstract interpretation and Application to Logic Programs. Journal of Logic Programming, 13(2-3), 1992.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10.S. Debray. Efficient Dataflow Analysis of Logic Programs. JACM, 39(4):949-984, 1992.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11.M. Dincbas, H. Simonis, and P. Van Hentenryck. Solving Large Combinatorial Problems in Logic Programming. Journal of Logic Programming, 8(1-2):75-93, 1990.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12.V. Englebert, B. Le Chaxlier, D. Roland, and P. Van Hentenryck. Genetic Abstract Interpretation Algorithms for Prolog: Two Optimization Techniques and Their Experimental Evaluation. Software Practice and Experience, 23(4), April 1993.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13.R. Giacobazzi, S. Debray, and G. Levi. A Generlized Semantics for Constraint Logic Programs. In FGCS'9P, Tokyo, June 1992.]]Google ScholarGoogle Scholar
  14. 14.N. Heintze and J. Jaffar. An Engine for Logic Program Analysis. In IEEE 7th Annual Symposium on Logic in Computer Science, 1992.]]Google ScholarGoogle Scholar
  15. 15.M. ttermenegildo, R. Warren, and S. Debray. Global Flow Analysis as a Practical Compilation Tool. Journal of Logic Programming, 13(4):349-367, 1992.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16.G. Janssens and M. Bruynooghe. Deriving Description of Possible Values of Program Variables by Means of Abstract Interpretation. Journal of Logic Programming, 13(2-3):205-258, 1992.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 17.T. Ka~uaanori and T. Kawamura. Analysing Success Patterns of Logic Programs by Abstract Hybrid Interpretation. Technical report, ICOT, 1987.]]Google ScholarGoogle Scholar
  18. 18.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.]]Google ScholarGoogle Scholar
  19. 19.B. Le Charlier and P. Van Hentenryck. Experimental Evaluation of a Generic Abstract Interpretation Algorithm for Prolog. A CM Transactions on Progrumming 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.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 20.B. Le Charlier and P. Van Hentenryck. Reexecution in Abstract Interpretation of Prolog. In Proceedings of the International Joint Conference and Symposium on Logic Programming (JICSLP.92), Washington, DC, November 1992.]]Google ScholarGoogle Scholar
  21. 21.B. Le Charlier and P. Van Hentenryck. Groundness Analysis for Prolog: Implementation and Evaluation of the Domain Prop. In Proceedings ol the A CM Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM93), Copenhagen, Denmark, June 1993.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22.K. Marriott and H. Sondergaard. Abstract Interpretation of Logic Programs: the Denotational Approach, June 1990. To appear in ACM Transaction on Programming Languages.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 23.K. Musumbu. Interpretation Abstraite de Programmes Prolog. PhD thesis, University of Namur (Belgium), September 1990.]]Google ScholarGoogle Scholar
  24. 24.A. Mycmft. Completeness and Predicate-Based Abstract Interpretation. In Proceedings o.f the A CM Symposium on Partial Evaluation and Semantics.Based Program Manipulation (PEPM93), Copenhagen, Denmark, June 1993.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 25.F. Nielson. Tensor Product GeneraliT.e the Relational Data Flow Analysis Method. In Proceedings of the Fourth Hungarian Computer Science Conference, 1985.]]Google ScholarGoogle Scholar
  26. 26.L. Sterling and E. Shapiro. The Art of Prolog: Advanced Programming Techniques. MIT Press, Cambridge, Ma, 1986.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. 27.A. Taylor. LIPS on MIPS: Results From a Prolog Cornprier for a RISC. In Seventh International Conference on Logic Programming (1CLP-90), Jerusalem, Israel, June 1990.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. 28.P. Van ttentenryck. Constraint Satisfaction in Logic Programming. Logic Programming Series, The MIT Press, Cambridge, MA, 1989.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. 29.P. Van Roy and A. Despaha. High-Performance Computlng with the Aquarius Compflen 1EEE Computer, 25(1), January 1092.]] Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Combinations of abstract domains for logic programming

    Recommendations

    Comments

    Login options

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

    Sign in
    • Published in

      cover image ACM Conferences
      POPL '94: Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
      February 1994
      492 pages
      ISBN:0897916360
      DOI:10.1145/174675

      Copyright © 1994 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 1 February 1994

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • Article

      Acceptance Rates

      POPL '94 Paper Acceptance Rate39of173submissions,23%Overall Acceptance Rate824of4,130submissions,20%

      Upcoming Conference

      POPL '25

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader