Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Open access

Complementation in abstract interpretation

Published: 01 January 1997 Publication History

Abstract

Reduced product of abstract domains is a rather well-known operation for domain composition in abstract interpretation. In this article, we study its inverse operation, introducing a notion of domain complementation in abstract interpretation. Complementation provides as systematic way to design new abstract domains, and it allows to systematically decompose domains. Also, such an operation allows to simplify domain verification problems, and it yields space-saving representations for complex domains. We show that the complement exists in most coses, and we apply complementation to three well-know abstract domains, notably to Cousot and Cousot's interval domain for integer variable analysis, to Cousot and Cousot's domain for comportment analysis of functional languages, and to the domain Sharing for aliasing analysis of logic languages.

References

[1]
ARMSTRONG, T., MARRIOTT, I~., SCHACHTE, P., AND SONDERGAARD, H. 1994. Boolean functions for dependency analysis: Algebraic properties and efficient representation. In Proceedings of the 1st International Static Analysis Symposium (SAS 'gJ), B. Le Charlier, Ed. Lecture Notes in Computer Science, vol. 864. Springer-Verlag, Berlin, 266-280.
[2]
BIRKHOFF, G. 1967. Lattice Theory. AMS Colloquium Publication, 3rd edition. AMS, Providence, R.I.
[3]
CODISH, M., MULKERS, A., BRUYNOOGHE, M., GARCfA DE LA BANDA, M., AND HERMENEGILDO, M. 1995. Improving abstract interpretations by combining domains. A CM Trans. Program. Lang. Syst. 17, 1, 28-44.
[4]
COMINI, M. AND LEVI, G. 1994. An algebraic theory of observables. In Proceedings of the 199~ International Logic Programming Symposium (ILPS '9~ ), M. Bruynooghe, Ed. The MIT Press, Cambridge, Mass., 172-186.
[5]
CORTESI, A., FILI~, G., AND WINSBOROUGH, W. 1992. Comparison of abstract interpretations. In Proceedings of the 19th International Colloquium on Automata, Languages and Programming (ICALP '92), W. Kuich, Ed. Lecture Notes in Computer Science, vol. 623. Springer-Verlag, Berlin, 521-532.
[6]
CORTESI, A., FILI~, G., AND WINSBOROUGH, W. 1996. Optimal groundness analysis using propositionM logic. J. Logic Program. 27, 2, 137-167.
[7]
COUSOT, P. 1978. M6thodes It6ratives de Construction et d'Approximation de Points Fixes d'Op6rateurs Monotones sur un Treillis, Analyse S6mantique des Programmes. Ph.D. thesis, Universit6 Scientifique et M6dicale de Grenoble, Grenoble, France.
[8]
COUSOT, P. AND COUSOT, R. 1976. Static determination of dynamic properties of programs. In Proceedings of the 2nd International Symposium on Programming. Dunod, Paris, 106-130.
[9]
COUSOT, P. AND COUSOT, R. 1977. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Conference Record of the Jth ACM Symposium on Principles of Programming Languages (POPL '77). ACM Press, New York, 238-252.
[10]
COUSOT, P. AND COUSOT, R. 1979. Systematic design of program analysis frameworks. In Conference Record of the 6th ACM Symposium on Principles of Programming Languages (POPL '79). ACM Press, New York, 269-282.
[11]
COUSOT, P. AND COUSOT, R. 1992a. Abstract interpretation and application to logic programs. J. Logic Program. 13, 2-3, 103-179.
[12]
COUSOT, P. AND COUSOT, R. 1992b. Inductive definitions, semantics and abstract interpretation. In Conference Record of the 19th A CM Symposium on Principles of Programming Languages (POPL '92). ACM Press, New York, 83-94.
[13]
COUSOT, P. AND COUSOT, R. 1994. Higher-order abstract interpretation (and application to comportment analysis generalizing strictness, termination, projection and per analysis of functional languages). In Proceedings of the IEEE International Conference on Computer Languages (ICCL 'gJ). IEEE Computer Society Press, Los Alamitos, Calif., 95-112.
[14]
DART, P. 1988. Dependency analysis and query interfaces for deductive databases. Ph.D. thesis, Univ. of Melbourne, Melbourne, Australia.
[15]
DART, P. 1991. On derived dependencies and connected databases. J. Logic Program. 11, 2, 163-188.
[16]
DAVEY, B. A. AND PRIESTLEY, H. A. 1990. Introduction to Lattices and Order. Cambridge University Press, Cambridge, U.K.
[17]
DWINGER, P. 1954. On the closure operators of a complete lattice. Indagationes Mathematicae 16, 560-563.
[18]
FILI~, G., GIACOBAZZI, R., AND RANZATO, F. 1996. A unifying view of abstract domain design. A CM Comput. Surv. 28, 2, 333-336.
[19]
FILI~, G. AND RANZATO, F. 1996. Complementation of abstract domains made easy. In Proceedings of the 1996 Joint International Conference and Symposium on Logic Programming (JICSLP '96), M. Maher, Ed. The MIT Press, Cambridge, Mass., 348-362.
[20]
FRINK, O. 1962. Pseudo-complements in semi-lattices. Duke Math. J. 29, 505-514.
[21]
GIACOBAZZI~ R. 1996. "Optimal" collecting semantics for analysis in a hierarchy of logic program semantics. In Proceedings of the 13th International Symposium on Theoretical Aspects of Computer Science (STACS '96), C. Puech and R. Reischuk, Eds. Lecture Notes in Computer Science, vol. 1046. Springer-Verlag, Berlin, 503-514.
[22]
GIACOBAZZI~ R., PALAMIDESSI~ C., AND RANZATO~ F. 1996. Weak relative pseudo-complements of closure operators. Algebra Universalis 36, 3, 405-412.
[23]
GIACOBAZZI~ R. AND RANZATO~ F. 1996. Complementing logic program semantics. In Proceedings of the 5th International Conference on Algebraic and Logic Programming (ALP '96), M. Hanus and M. Rodrfguez Artalejo, Eds. Lecture Notes in Computer Science. Springer-Verlag, Berlin, 238-253.
[24]
GIERZ~ G., HOFMANN~ K. H., KEIMEL~ K., LAWSON~ J. D., MISLOVE~ M., AND SCOTT~ D. S. 1980. A Compendium of Continuous Lattices. Springer-Verlag, Berlin.
[25]
GRXTZER, G. 1978. General Lattice Theory. Birkhguser Verlag, Basel, Switzerland.
[26]
HUNT, S. 1990. PERs generalize projections for strictness analysis. In Proceedings of the 1990 Glasgow Functional Programming Workshop, S. Peyton Jones, G. Hutton, and C. K. Holst, Eds. Workshops in Computing. Springer-Verlag, Berlin, 156-168.
[27]
JACOBS, D. AND LANGEN, A. 1989. Accurate and efficient approximation of variable aliasing in logic programs. In Proceedings of the 1989 North American Conference on Logic Programming (NACLP '89), E. L. Lusk and R. A. Overbeek, Eds. The MIT Press, Cambridge, Mass., 154-165.
[28]
JACOBS, D. AND LANGEN, A. 1992. Static analysis of logic programs for independent AND- parallelism. J. Logic Program. 13, 2-3, 154-165.
[29]
KAM, J. B. AND ULLMAN, J. D. 1977. Monotone data flow analysis frameworks. Acta Informatica 7, 305-317.
[30]
KILDALL, G. A. 1973. A unified approach to global program optimization. In Conference Record of the 1st ACM Symposium on Principles of Programming Languages (POPL '73). ACM Press, New York, 194-206.
[31]
MARCHIORI, E. 1996. Prime factorizations of abstract domains using first order logic. In Proceedings of the 5th International Conference on Algebraic and Logic Programming (ALP '96), M. Hanus and M. Rodrfguez Artalejo, Eds. Lecture Notes in Computer Science. Springer-Verlag, Berlin, 209-223.
[32]
MARRIOTT, K. AND SONDERGAARD, H. 1993. Precise and efficient groundness analysis for logic programs. ACM Lett. Program. Lang. Syst. 2, 1-4, 181-196.
[33]
MORGADO, J. 1962. Note on complemented closure operators of complete lattices. Portugalice- Mathematica 21, 3, 135-142.
[34]
MUTHUKUMAR, K. AND HERMENEGILDO, M. 1991. Combined determination of sharing and freeness of program variables through abstract interpretation. In Proceedings of the 8th International Conference on Logic Programming (ICLP '91 ), K. Furukawa, Ed. The MIT Press, Cambridge, Mass., 49-63.
[35]
MYCROFT, A. 1980. The theory and practice of transforming call-by-need into call-by-value. In Proceedings of the ~th International Symposium on Programming, B. Robinet, Ed. Lecture Notes in Computer Science, vol. 83. Springer-Verlag, Berlin, 270-281.
[36]
MYCROFT, A. 1981. Abstract interpretation and optimising transformations for applicative programs. Ph.D. thesis, CST-15/81, Univ. of Edinburgh, Edinburgh, Scotland.
[37]
MYCROFT, A. 1993. Completeness and predicate-based abstract interpretation. In Proceedings of the A CM Symposium on Partial Evaluation and Program Manipulation (PEPM '93). ACM Press, New York, 179-185.
[38]
NIELSON, F. 1985. Tensor products generalize the relational data flow analysis method. In Proceedings of the ~th Hungarian Computer Science Conference, M. Aratd, I. K~tai, and L. Varga, Eds. 211-225.
[39]
SUNDARARAJAN, R. AND CONERY, J. 1992. An abstract interpretation scheme for groundness, freeness, and sharing analysis of logic programs. In Proceedings of the 12th Conference on Foundations of Software Technology and Theoretical Computer Science (FST~iTCS '92), R. Shyamasundar, Ed. Lecture Notes in Computer Science, vol. 652. Springer-Verlag, Berlin, 203-216.
[40]
VARLET, J. 1963. Contribution ~ l'6tude des treillis pseudo-compl6ment6s et des treillis de Stone. Mdmoires de la Socidtd Royale des Sciences de Liege 8, 4, 1-71.
[41]
WADLER, P. AND HUGHES, R. J. iV{. 1987. Projections for strictness analysis. In Proceedings of the Conference on Functional Programming Languages and Computer Architecture (FPCA '87), G. Kahn, Ed. Lecture Notes in Computer Science, vol. 274. Springer-Verlag, Berlin, 385-407.
[42]
WARD, ~/{. 1942. The closure operators of a lattice. Ann. Math. 43, 2, 191-196.
[43]
YI, K. AND HARRISON, W. L. 1993. Automatic generation and management of interprocedural program analyses. In Conference Record of the 20th A CM Symposium on Principles of Programming Languages (POPL '93). ACM Press, New York, 246-259.

Cited By

View all
  • (2017)Tutorial on Static Inference of Numeric Invariants by Abstract InterpretationFoundations and Trends in Programming Languages10.1561/25000000344:3-4(120-372)Online publication date: 5-Dec-2017
  • (2015)Abstracting Induction by Extrapolation and InterpolationProceedings of the 16th International Conference on Verification, Model Checking, and Abstract Interpretation - Volume 893110.1007/978-3-662-46081-8_2(19-42)Online publication date: 12-Jan-2015
  • (2013)Static analysis techniques for robotics software verificationIEEE ISR 201310.1109/ISR.2013.6739742(1-6)Online publication date: Oct-2013
  • Show More Cited By

Recommendations

Reviews

D. John Cooke

Abstract interpretation is concerned with the semantics of programming languages at different levels of abstraction. The idea is to construct abstract domains that, in some sense, approximate the concrete domain in which the full programming language semantics are defined and use them to simplify the analyses of programs. Of course, properties that are the subject of any given program analysis must behave in the abstract domain in ways consistent with the underlying concrete semantics. Starting from a formalization of abstraction, defined in terms of Galois insertions, and the reduced product of domains, the authors expound the use of pseudocomplementation to decompose domains into a minimal conjunction of more basic domains. (They observe that the domains under investigation may not have been constructed by the reverse of this process.) This is not possible in the standard theory of abstract interpretation, but the authors claim that their construction can be applied in most cases of interest. This supports the inductive calculation of complements (saturation points of increasing sequences of closure operators) in finite sets, and an algorithm is given for finding minimal decompositions of finite concrete domains. The theory is then applied to integer variable analysis in imperative programs, to comportment (“feature”) analysis in functional programs (in which the strictness and termination domains are complementary), and to the analysis of sharing and groundedness in logic programs. Although the paper contains a handful of grammatical errors, it is well written and easy to understand, provided you know your domain theory.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Information & Contributors

Information

Published In

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 January 1997
Published in TOPLAS Volume 19, Issue 1

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. abstract domain
  2. abstract interpretation
  3. closure operator
  4. complementation
  5. functional and logic programming
  6. program analysis

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)58
  • Downloads (Last 6 weeks)6
Reflects downloads up to 15 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2017)Tutorial on Static Inference of Numeric Invariants by Abstract InterpretationFoundations and Trends in Programming Languages10.1561/25000000344:3-4(120-372)Online publication date: 5-Dec-2017
  • (2015)Abstracting Induction by Extrapolation and InterpolationProceedings of the 16th International Conference on Verification, Model Checking, and Abstract Interpretation - Volume 893110.1007/978-3-662-46081-8_2(19-42)Online publication date: 12-Jan-2015
  • (2013)Static analysis techniques for robotics software verificationIEEE ISR 201310.1109/ISR.2013.6739742(1-6)Online publication date: Oct-2013
  • (2011)An abstract interpretation-based model for safety semanticsInternational Journal of Computer Mathematics10.1080/0020716100370320588:4(665-694)Online publication date: 1-Mar-2011
  • (2011)Widening and narrowing operators for abstract interpretationComputer Languages, Systems and Structures10.1016/j.cl.2010.09.00137:1(24-42)Online publication date: 1-Apr-2011
  • (2010)Static analysis, abstract interpretation and verification in (constraint logic) programmingA 25-year perspective on logic programming10.5555/1880413.1880421(136-158)Online publication date: 1-Jan-2010
  • (2010)Static Analysis, Abstract Interpretation and Verification in (Constraint Logic) ProgrammingA 25-Year Perspective on Logic Programming10.1007/978-3-642-14309-0_7(136-158)Online publication date: 2010
  • (2009)Semantics-based code obfuscation by abstract interpretationJournal of Computer Security10.5555/1662641.166264417:6(855-908)Online publication date: 1-Dec-2009
  • (2009)On the interaction between sharing and linearityTheory and Practice of Logic Programming10.1017/S147106840999016010:01(49-112)Online publication date: 24-Sep-2009
  • (2008)Precise set sharing analysis for Java-style programsProceedings of the 9th international conference on Verification, model checking, and abstract interpretation10.5555/1787526.1787543(172-187)Online publication date: 7-Jan-2008
  • 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