skip to main content
10.1145/1133981.1134026acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article

Combining abstract interpreters

Published:11 June 2006Publication History

ABSTRACT

We present a methodology for automatically combining abstract interpreters over given lattices to construct an abstract interpreter for the combination of those lattices. This lends modularity to the process of design and implementation of abstract interpreters.We define the notion of logical product of lattices. This kind of combination is more precise than the reduced product combination. We give algorithms to obtain the join operator and the existential quantification operator for the combined lattice from the corresponding operators of the individual lattices. We also give a bound on the number of steps required to reach a fixed point across loops during analysis over the combined lattice in terms of the corresponding bounds for the individual lattices. We prove that our combination methodology yields the most precise abstract interpretation operators over the logical product of lattices when the individual lattices are over theories that are convex, stably infinite, and disjoint.We also present an interesting application of logical product wherein some lattices can be reduced to combination of other (unrelated) lattices with known abstract interpreters.

References

  1. E. Chang and R. Leino. Abstract interpretation with alien expressions and heap structures. In VMCAI, volume 3385 of LNCS, pages 147--163. Springer, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. M. Codish, A. Mulkers, M. Bruynooghe, M. G. de la Banda, and M. Hermenegildo. Improving abstract interpretations by combining domains. ACM Transactions on Programming Languages and Systems, 17(1):28--44, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. A. Cortesi, G. Filé, R. Giacobazzi, C. Palamidessi, and F. Ranzato. Complementation in abstract interpretation. ACM Trans. Program. Lang. Syst., 19(1):7--47, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. P. Cousot. Iterative reduced product, Lecture Notes on Abstract Interpretation, Available at http://web.mit.edu/16.399/www/. 2005.Google ScholarGoogle Scholar
  5. P. Cousot and R. Cousot. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In 4th ACM Symposium on POPL, pages 234--252, 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. P. Cousot and R. Cousot. Systematic design of program analysis frameworks. In 6th ACM Symp. on POPL, pages 269--282, 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. P. Cousot and N. Halbwachs. Automatic discovery of linear restraints among variables of a program. In 5th ACM Symposium on POPL, pages 84--97, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. R. Giacobazzi and F. Ranzato. Refining and compressing abstract domains. In Proc. 24th ICALP, volume 1256 of LNCS, pages 771--781, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. R. Giacobazzi, F. Ranzato, and F. Scozzari. Making abstract interpreters complete. J. of the ACM, 47(2):361--416, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. S. Gulwani and G. C. Necula. Discovering affine equalities using random interpretation. In 30th ACM Symposium on POPL, pages 74--84. ACM, Jan. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. S. Gulwani and G. C. Necula. Global value numbering using random interpretation. In 31st ACM Symposium on POPL, pages 342--352, Jan. 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. S. Gulwani and G. C. Necula. A polynomial-time algorithm for global value numbering. In 11th Static Analysis Symposium, volume 3148 of LNCS, pages 212--227. Springer-Verlag, Aug. 2004.Google ScholarGoogle ScholarCross RefCross Ref
  13. S. Gulwani and A. Tiwari. Assertion checking over combined abstraction of linear arithmetic and uninterpreted functions. In 15th European Symposium on Programming, volume 3924 of LNCS. Springer, Mar. 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. S. Gulwani and A. Tiwari. Combining abstract interpreters. Technical Report MSR-TR-2006-25, Microsoft Research, Mar. 2006.Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. S. Gulwani, A. Tiwari, and G. C. Necula. Join algorithms for the theory of uninterpreted symbols. In Conf. on Foundations of Software Tech. and Theor. Comp. Sci., FST&TCS '2004, volume 3328 of LNCS, pages 311--323, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. M. Karr. Affine relationships among variables of a program. In Acta Informatica, pages 133--151. Springer, 1976.Google ScholarGoogle Scholar
  17. S. Lerner, D. Grove, and C. Chambers. Composing dataflow analyses and transformations. In 29th ACM Symposium in POPL, pages 270--282, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. M. Müller-Olm and H. Seidl. A note on Karr's algorithm. In ICALP, pages 1016--1028, 2004.Google ScholarGoogle ScholarCross RefCross Ref
  19. G. Nelson and D. Oppen. Simplification by cooperating decision procedures. ACM Transactions on Programming Languages and Systems, 1(2):245--257, Oct. 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. F. Nielson, H. Nielson, and C. Hankin. Principles of Program Analysis. Springer-Verlag, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. T. W. Reps, S. Sagiv, and G. Yorsh. Symbolic implementation of the best transformer. In VMCAI, volume 2937 of LNCS, pages 252--266. Springer, 2004.Google ScholarGoogle Scholar

Index Terms

  1. Combining abstract interpreters

                  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
                    PLDI '06: Proceedings of the 27th ACM SIGPLAN Conference on Programming Language Design and Implementation
                    June 2006
                    438 pages
                    ISBN:1595933204
                    DOI:10.1145/1133981
                    • cover image ACM SIGPLAN Notices
                      ACM SIGPLAN Notices  Volume 41, Issue 6
                      Proceedings of the 2006 PLDI Conference
                      June 2006
                      426 pages
                      ISSN:0362-1340
                      EISSN:1558-1160
                      DOI:10.1145/1133255
                      Issue’s Table of Contents

                    Copyright © 2006 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: 11 June 2006

                    Permissions

                    Request permissions about this article.

                    Request Permissions

                    Check for updates

                    Qualifiers

                    • Article

                    Acceptance Rates

                    Overall Acceptance Rate406of2,067submissions,20%

                    Upcoming Conference

                    PLDI '24

                  PDF Format

                  View or Download as a PDF file.

                  PDF

                  eReader

                  View online with eReader.

                  eReader