Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1480881.1480899acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
research-article

Automatic modular abstractions for linear constraints

Published: 21 January 2009 Publication History

Abstract

We propose a method for automatically generating abstract transformers for static analysis by abstract interpretation. The method focuses on linear constraints on programs operating on rational, real or floating-point variables and containing linear assignments and tests.
In addition to loop-free code, the same method also applies for obtaining least fixed points as functions of the precondition, which permits the analysis of loops and recursive functions. Our algorithms are based on new quantifier elimination and symbolic manipulation techniques.
Given the specification of an abstract domain, and a program block, our method automatically outputs an implementation of the corresponding abstract transformer. It is thus a form of program transformation.
The motivation of our work is data-flow synchronous programming languages, used for building control-command embedded systems, but it also applies to imperative and functional programming.

References

[1]
Roberto Bagnara, Patricia M. Hill, Elena Mazzi, and Enea Zaffanella. Widening operators for weakly-relational numeric abstractions. In Static Analysis (SAS), volume 3672 of LNCS, pages 3--18. Springer, 2005.
[2]
Roberto Bagnara, Patricia M. Hill, Elisa Ricci, and Enea Zaffanella. Precise widening operators for convex polyhedra. Sci. Comput. Program., 58 (1-2): 28--56, 2005.
[3]
Roberto Bagnara, Patricia M. Hill, and Enea Zaffanella. The Parma Polyhedra Library, version 0.9, 2006. URL http://www.cs.unipr.it/ppl.
[4]
Gogul Balakrishnan and Thomas Reps. Analyzing memory accesses in x86 executables. In Compiler Construction (CC), volume 2985 of LNCS, pages 5--23. Springer, 2004.
[5]
Miné, Monniaux, and Rival}BlanchetCousotEtAl02-NJ Bruno Blanchet, Patrick Cousot, Radhia Cousot, Jérôme Feret, Laurent Mauborgne, Antoine Miné, David Monniaux, and Xavier Rival. Design and implementation of a special-purpose static programDesign and implementation of a special-purpose static program analyzer for safety-critical real-time embedded software. In The Essence of Computation: Complexity, Analysis, Transformation, number 2566 in LNCS, pages 85--108. Springer, 2002.
[6]
Miné, Monniaux, and Rival}ASTREE_PLDI03 Bruno Blanchet, Patrick Cousot, Radhia Cousot, Jérôme Feret, Laurent Mauborgne, Antoine Miné, David Monniaux, and Xavier Rival. A static analyzer for large safety-critical software. In Programming Language Design and Implementation (PLDI), pages 196--207. ACM, 2003.
[7]
François Bourdoncle. Sémantique des langages impératifs d'ordre supérieur et interprétation abstraite. PhD thesis, École polytechnique, Palaiseau, 1992.
[8]
Aaron R. Bradley and Zohar Manna The Calculus of Computation: Decision Procedures with Applications to Verification Springer, October 2007.
[9]
Paul Caspi, Daniel Pilaud, Nicolas Halbwachs, and John A. Plaice. LUSTRE: a declarative language for real-time programming. In Principles of Programming Languages (POPL), pages 178--188. ACM, 1987.
[10]
Paul Caspi, Adrian Curic, Aude Maignan, Christos Sofronis, Stavros Tripakis, and Peter Niebert. From Simulink to Scade/Lustre to TTA: a layered approach for distributed embedded applications. SIGPLAN notices, 38 (7): 153--162, 2003.
[11]
CAV05. Computer Aided Verification (CAV), number 4590 in LNCS, 2005. Springer.
[12]
Robert Clarisó and Jordi Cortadella. The octahedron abstract domain. In Static Analysis (SAS), number 3148 in LNCS, pages 312--327. Springer, 2004.
[13]
Michael Colon, Sriram Sankaranarayanan, and Henny Sipma. Linear invariant generation using non-linear constraint solving. Linear invariant generation using non-linear constraint solving. pages 420--433. Springer, 2003.
[14]
Patrick Cousot. Proving program invariance and termination by parametric abstraction, lagrangian relaxation and semidefinite programming. In VMCAI_2005, pages 1--24.
[15]
Patrick Cousot and Radhia Cousot. Abstract interpretation and application to logic programs. J. of Logic Programming, 13 (2-3): 103--179, 1992.
[16]
Patrick Cousot and Radhia Cousot. Static determination of dynamic properties of programs. In Proceedings of the Second International Symposium on Programming, pages 106--130. Dunod, Paris, France, 1976.
[17]
Patrick Cousot and Nicolas Halbwachs. Automatic discovery of linear restraints among variables of a program.In Principles of Programming Languages (POPL), pages 84--96.ACM, 1978.
[18]
Patrick Cousot, Radhia Cousot, Jérôme Feret, Laurent Mauborgne, Antoine Miné, David Monniaux, and Xavier Rival. The ASTRÉE analyzer. In Programming Languages and Systems (ESOP), number 3444 in LNCS, pages 21--30, 2005.
[19]
ESOP07. Programming Languages and Systems (ESOP), volume 4421 of LNCS, 2007.
[20]
Jeanne Ferrante and Charles Rackoff. A decision procedure for the first order theory of real addition with SIAM Journal of Computation, 4 (1): 69--76, March 1975.
[21]
Michael J. Fischer and Michael O. Rabin. Super-exponential complexity of Presburger arithmetic. In Complexity of Computation, number 7 in SIAM-AMS proceedings, pages 27--42. American Mathematical Society, 1974.
[22]
Stéphane Gaubert, Éric Goubault, Ankur Taly, and Sarah Zennou. Static analysis by policy iteration on relational domains. In ESOP_2007, pages 237--252.
[23]
Thomas Gawlitza and Helmut Seidl. Precise fixpoint computation through strategy iteration. In ESOP_2007, pages 300--315.
[24]
Laure Gonnord and Nicolas Halbwachs. Combining widening and acceleration in linear relation analysis. In Static Analysis (SAS), volume 4134 of LNCS, pages 144--160. Springer, 2006.
[25]
Denis Gopan and Thomas W. Reps. Lookahead widening. In Computer Aided Verification (CAV), volume 4144 of LNCS, pages 452--466. Springer, 2006.
[26]
Denis Gopan and Thomas W. Reps. Low-level library analysis and summarization. In Computer Aided Verification (CAV), volume 4590 of LNCS, pages 68--81. Springer, 2007.
[27]
Venkatesan}Gulwani_PLDI08 Sumit Gulwani, Saurabh Srivastava, and Ramarathnam Venkatesan. Program analysis as constraint solving. In Programming Language Design and Implementation (PLDI). ACM, 2008.
[28]
Nicolas Halbwachs. Détermination automatique de relations linéaires vérifiées par les variables d'un programme. PhD thesis, Université scientifique et médicale de Grenoble, 1979.
[29]
IEEE standard for Binary floating-point arithmetic for microprocessor systems. IEEE, 1985. ANSI/IEEE Std 754--1985.
[30]
Bertrand Jeannet. Dynamic partitioning in linear relation analysis. application to the verification of reactive systems. Formal Methods in System Design, 23 (1): 5--37, July 2003.
[31]
Deepak Kapur. Automatically generating loop invariants using quantifier elimination. In ACA (Applications of Computer Algebra), 2004.
[32]
Akash Lal, Gogul Balakrishnan, and Thomas Reps. Extended weighted pushdown systems. In CAV_2005, pages 343--357.
[33]
Francesco Logozzo and Manuel Fähndrich. On the relative completeness of bytecode analysis versus source code analysis. In Compiler Construction (CC), volume 4959 of LNCS, pages 197--212. Springer, 2008.
[34]
Zohar Manna and John McCarthy. Properties of programs and partial function logic. In Machine Intelligence, 5, pages 27--38. Edinburgh University
[35]
Zohar Manna and Amir Pnueli. Formalization of properties of functional programs.J. ACM, 17 (3): 555--569, 1970.
[36]
Ferdinand}DBLP:conf/cc/MartinAWF98 Florian Martin, Martin Alt, Reinhard Wilhelm, and Christian Ferdinand. Analysis of loops. In Compiler Construction (CC), volume 1383 of LNCS, pages 80--94. Springer, 1998.
[37]
Antoine Miné. The octagon abstract domain. In Reverse Engineering (WCRE), pages 310--319. IEEE, 2001.
[38]
Relational abstract domains for the detection of floating-point run-time errors. In Programming Languages and Systems (ESOP), volume 2986 of LNCS, pages 3--17. Springer, 2004.
[39]
David Monniaux. Compositional analysis of floating-point linear numerical filters. In CAV_2005, pages 199--212.
[40]
David Monniaux. A quantifier elimination algorithm for linear real arithmetic. In LPAR (Logic for Programming, Artificial Intelligence, and Reasoning), LNCS. Springer, 2008.
[41]
David Monniaux. Optimal abstraction on real-valued programs. In Static analysis (SAS), number 4634 in LNCS, pages 104--120. Springer, 2007.
[42]
David Monniaux. The pitfalls of verifying floating-point computations. ACM Transactions on programming languages and systems, ACM Transactions on programming languages and systems, 30 (3): 12, 2008.30
[43]
George C. Necula, Scott McPeak, Shree P. Rahul, and Westley Weimer. CIL: Intermediate language and tools for analysis and transformation of C programs. In Compiler Construction (CC), volume 2304 of LNCS, pages 209--265. Springer, 2002.
[44]
Radu Rugina and Martin Rinard. Symbolic bounds analysis for pointers, array indices, and accessed memory regions. ACM Trans. on Programming Languages and Systems (TOPLAS), 27 (2): 185--235, 2005.
[45]
Sriram Sankaranarayanan, Henny Sipma, and Zohar Manna. Constraint-based linear-relations analysis. In SAS, number 3148 in LNCS, pages 53--68. Springer, 2004.
[46]
Sriram Sankaranarayanan, Henny Sipma, and Zohar Manna. Scalable analysis of linear systems using mathematical programming. In VMCAI_2005, pages 21--47.
[47]
Helmut Seidl, Andrea Flexeder, and Michael Petter. Interprocedurally analysing linear inequality relations. In ESOP_2007, pages 284--299.
[48]
Micha Sharir and Amir Pnueli. Two approaches to inter-procedural data-flow analysis. In Program Flow Analysis: Theory and Application. Prentice-Hall, 1981.
[49]
VMCAI05. Verification, Model Checking and Abstract Interpretation (VMCAI), number 3385 in LNCS, 2005. Springer.

Cited By

View all
  • (2024)Practical Approximate Quantifier Elimination for Non-linear Real ArithmeticFormal Methods10.1007/978-3-031-71162-6_6(111-130)Online publication date: 11-Sep-2024
  • (2024)Algebraic Reasoning Meets Automata in Solving Linear Integer ArithmeticComputer Aided Verification10.1007/978-3-031-65627-9_3(42-67)Online publication date: 24-Jul-2024
  • (2021)Program analysis via efficient symbolic abstractionProceedings of the ACM on Programming Languages10.1145/34854955:OOPSLA(1-32)Online publication date: 15-Oct-2021
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
POPL '09: Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
January 2009
464 pages
ISBN:9781605583792
DOI:10.1145/1480881
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 44, Issue 1
    POPL '09
    January 2009
    453 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1594834
    Issue’s Table of Contents
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 21 January 2009

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. abstract interpretation
  2. linear inequalities
  3. program transformation
  4. quantifier elimination

Qualifiers

  • Research-article

Conference

POPL09

Acceptance Rates

Overall Acceptance Rate 824 of 4,130 submissions, 20%

Upcoming Conference

POPL '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)0
Reflects downloads up to 16 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Practical Approximate Quantifier Elimination for Non-linear Real ArithmeticFormal Methods10.1007/978-3-031-71162-6_6(111-130)Online publication date: 11-Sep-2024
  • (2024)Algebraic Reasoning Meets Automata in Solving Linear Integer ArithmeticComputer Aided Verification10.1007/978-3-031-65627-9_3(42-67)Online publication date: 24-Jul-2024
  • (2021)Program analysis via efficient symbolic abstractionProceedings of the ACM on Programming Languages10.1145/34854955:OOPSLA(1-32)Online publication date: 15-Oct-2021
  • (2017)Solving quantified linear arithmetic by counterexample-guided instantiationFormal Methods in System Design10.1007/s10703-017-0290-y51:3(500-532)Online publication date: 1-Dec-2017
  • (2016)Proteus: computing disjunctive loop summary via path dependency analysisProceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering10.1145/2950290.2950340(61-72)Online publication date: 1-Nov-2016
  • (2015)Compositional recurrence analysisProceedings of the 15th Conference on Formal Methods in Computer-Aided Design10.5555/2893529.2893544(57-64)Online publication date: 27-Sep-2015
  • (2014)Symbolic optimization with SMT solversACM SIGPLAN Notices10.1145/2578855.253585749:1(607-618)Online publication date: 8-Jan-2014
  • (2014)Abstract acceleration of general linear loopsACM SIGPLAN Notices10.1145/2578855.253584349:1(529-540)Online publication date: 8-Jan-2014
  • (2014)Symbolic optimization with SMT solversProceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages10.1145/2535838.2535857(607-618)Online publication date: 11-Jan-2014
  • (2014)Abstract acceleration of general linear loopsProceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages10.1145/2535838.2535843(529-540)Online publication date: 11-Jan-2014
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media