skip to main content
article
Open access

Improving abstract interpretations by combining domains

Published: 01 January 1995 Publication History

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.
[2]
BRUYNOOGHB, IVI. 1991. A practical framework for the abstract interpretation of logic programs. J. Logic Program. 10, 2 (Feb.), 91-124.
[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.
[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.
[5]
CODISH, M., DAMS, D., AND YARDBNI, E. 1994a. Bottom-up abstract interpretation of logic programs. J. Theor. Comput Sci. i~4, 93-125.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[16]
DEBRAY, S. K., (Ed.). 1992. Special issue: Abstract interpretation. Y. Logic Program. 13, 2 and 3 (J~ay).
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[26]
NELSON, F. 1988. Strictness analysis and denotational abstract interpretation. Inf. Comput. 76, 29-92.
[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.
[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.

Cited By

View all

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

Information & Contributors

Information

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

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 January 1995
Published in TOPLAS Volume 17, Issue 1

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. abstract interpretation
  2. logic programming
  3. program analysis

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)54
  • Downloads (Last 6 weeks)6
Reflects downloads up to 19 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Lifting String Analysis DomainsChallenges of Software Verification10.1007/978-981-19-9601-6_7(109-143)Online publication date: 22-Jul-2023
  • (2023)A Rule-Based Approach for�Designing and�Composing Abstract DomainsLogic-Based Program Synthesis and Transformation10.1007/978-3-031-45784-5_6(80-98)Online publication date: 16-Oct-2023
  • (2023)Polynomial Analysis of�Modular ArithmeticStatic Analysis10.1007/978-3-031-44245-2_22(508-539)Online publication date: 24-Oct-2023
  • (2022)SpecChecker-ISA: a data sharing analyzer for interrupt-driven embedded softwareProceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3533767.3543295(801-804)Online publication date: 18-Jul-2022
  • (2020)Mix your contexts well: opportunities unleashed by recent advances in scaling context-sensitivityProceedings of the 29th International Conference on Compiler Construction10.1145/3377555.3377902(27-38)Online publication date: 22-Feb-2020
  • (2016)From Datalog to flix: a declarative language for fixed points on latticesACM SIGPLAN Notices10.1145/2980983.290809651:6(194-208)Online publication date: 2-Jun-2016
  • (2016)From Datalog to flix: a declarative language for fixed points on latticesProceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/2908080.2908096(194-208)Online publication date: 2-Jun-2016
  • (2010)Range analysis of microcontroller code using bit-level congruencesProceedings of the 15th international conference on Formal methods for industrial critical systems10.5555/1894600.1894606(82-98)Online publication date: 20-Sep-2010
  • (2010)The two variable per inequality abstract domainHigher-Order and Symbolic Computation10.1007/s10990-010-9062-823:1(87-143)Online publication date: 1-Mar-2010
  • (2010)Range Analysis of Microcontroller Code Using Bit-Level CongruencesFormal Methods for Industrial Critical Systems10.1007/978-3-642-15898-8_6(82-98)Online publication date: 2010
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media