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.
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- P. Cousot. Iterative reduced product, Lecture Notes on Abstract Interpretation, Available at http://web.mit.edu/16.399/www/. 2005.Google Scholar
- 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 ScholarDigital Library
- P. Cousot and R. Cousot. Systematic design of program analysis frameworks. In 6th ACM Symp. on POPL, pages 269--282, 1979. Google ScholarDigital Library
- 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 ScholarDigital Library
- R. Giacobazzi and F. Ranzato. Refining and compressing abstract domains. In Proc. 24th ICALP, volume 1256 of LNCS, pages 771--781, 1997. Google ScholarDigital Library
- R. Giacobazzi, F. Ranzato, and F. Scozzari. Making abstract interpreters complete. J. of the ACM, 47(2):361--416, 2000. Google ScholarDigital Library
- 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 ScholarDigital Library
- S. Gulwani and G. C. Necula. Global value numbering using random interpretation. In 31st ACM Symposium on POPL, pages 342--352, Jan. 2004. Google ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- S. Gulwani and A. Tiwari. Combining abstract interpreters. Technical Report MSR-TR-2006-25, Microsoft Research, Mar. 2006.Google ScholarDigital Library
- 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 ScholarDigital Library
- M. Karr. Affine relationships among variables of a program. In Acta Informatica, pages 133--151. Springer, 1976.Google Scholar
- S. Lerner, D. Grove, and C. Chambers. Composing dataflow analyses and transformations. In 29th ACM Symposium in POPL, pages 270--282, 2002. Google ScholarDigital Library
- M. Müller-Olm and H. Seidl. A note on Karr's algorithm. In ICALP, pages 1016--1028, 2004.Google ScholarCross Ref
- G. Nelson and D. Oppen. Simplification by cooperating decision procedures. ACM Transactions on Programming Languages and Systems, 1(2):245--257, Oct. 1979. Google ScholarDigital Library
- F. Nielson, H. Nielson, and C. Hankin. Principles of Program Analysis. Springer-Verlag, 2005. Google ScholarDigital Library
- 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 Scholar
Index Terms
- Combining abstract interpreters
Recommendations
Combining abstract interpreters
Proceedings of the 2006 PLDI ConferenceWe 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 ...
Lifting abstract interpreters to quantified logical domains
POPL '08: Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languagesWe describe a general technique for building abstract interpreters over powerful universally quantified abstract domains that leverage existing quantifier-free domains. Our quantified abstract domain can represent universally quantified facts like ∀i(0 ≤...
Combining Semilattices and Semimodules
Foundations of Software Science and Computation StructuresAbstractWe describe the canonical weak distributive law of the powerset monad over the S-left-semimodule monad , for a class of semirings S. We show that the composition of with by means of such yields almost the monad of convex subsets ...
Comments