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).
- 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 Scholar
- 2.M. Bruynooghe. A Practical Framework for the Abstract Interpretation of Logic Programs. Journal of Logic Programming, 10:91-124, 1991.]] Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 9.P. Cousot and R. Cousot. Abstract interpretation and Application to Logic Programs. Journal of Logic Programming, 13(2-3), 1992.]] Google ScholarDigital Library
- 10.S. Debray. Efficient Dataflow Analysis of Logic Programs. JACM, 39(4):949-984, 1992.]] Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 13.R. Giacobazzi, S. Debray, and G. Levi. A Generlized Semantics for Constraint Logic Programs. In FGCS'9P, Tokyo, June 1992.]]Google Scholar
- 14.N. Heintze and J. Jaffar. An Engine for Logic Program Analysis. In IEEE 7th Annual Symposium on Logic in Computer Science, 1992.]]Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 17.T. Ka~uaanori and T. Kawamura. Analysing Success Patterns of Logic Programs by Abstract Hybrid Interpretation. Technical report, ICOT, 1987.]]Google Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 23.K. Musumbu. Interpretation Abstraite de Programmes Prolog. PhD thesis, University of Namur (Belgium), September 1990.]]Google Scholar
- 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 ScholarDigital Library
- 25.F. Nielson. Tensor Product GeneraliT.e the Relational Data Flow Analysis Method. In Proceedings of the Fourth Hungarian Computer Science Conference, 1985.]]Google Scholar
- 26.L. Sterling and E. Shapiro. The Art of Prolog: Advanced Programming Techniques. MIT Press, Cambridge, Ma, 1986.]] Google ScholarDigital Library
- 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 ScholarDigital Library
- 28.P. Van ttentenryck. Constraint Satisfaction in Logic Programming. Logic Programming Series, The MIT Press, Cambridge, MA, 1989.]] Google ScholarDigital Library
- 29.P. Van Roy and A. Despaha. High-Performance Computlng with the Aquarius Compflen 1EEE Computer, 25(1), January 1092.]] Google ScholarDigital Library
Index Terms
- Combinations of abstract domains for logic programming
Recommendations
Making abstract domains condensing
In this article, we show that reversible analyses of logic languages by abstract interpretation can be performed without loss of precision by systematically refining abstract domains. This is obtained by adding to the abstract domain the minimal amount ...
Temporal Abstract Domains
ICECCS '11: Proceedings of the 2011 16th IEEE International Conference on Engineering of Complex Computer SystemsThe specifications of the control units driving embedded systems often involve temporal properties. We aim at certifying them statically using the Abstract Interpretation framework and introduce several Abstract Domains dedicated to proving such ...
Comments