skip to main content
10.1145/1040305.1040333acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article

A framework for numeric analysis of array operations

Published: 12 January 2005 Publication History

Abstract

Automatic discovery of relationships among values of array elements is a challenging problem due to the unbounded nature of arrays. We present a framework for analyzing array operations that is capable of capturing numeric properties of array elements.In particular, the analysis is able to establish that all array elements are initialized by an array-initialization loop, as well as to discover numeric constraints on the values of initialized elements.The analysis is based on the combination of canonical abstraction and summarizing numeric domains. We describe a prototype implementation of the analysis and discuss our experience with applying the prototype to several examples, including the verification of correctness of an insertion-sort procedure.

References

[1]
R. Bagnara, E. Ricci, E. Zaffanella, and P. M. Hill. Possibly not closed convex polyhedra and the parma polyhedra library. In Static Analysis Sym ., volume 2477, pages 213--229, 2002.
[2]
B. Blanchet, P. Cousot, R. Cousot, J. Feret, L. Mauborgne, A. Miné, D. Monniaux, and X. Rival. Design and implementation of a special-purpose static program analyzer for safety-critical real-time embedded software. In The Essence of Computation: Complexity, Analysis, Transformation., pages 85--108. Springer-Verlag, 2002.
[3]
P. Cousot and R. Cousot. Abstract interpretation: A unified lattice model for static analysis of programs by construction of approximation of fixed points. In Symp. on Princ. of Prog. Lang., pages 238--252, New York, NY, 1977. ACM Press.
[4]
P. Cousot and R. Cousot. Systematic design of program analysis frameworks. In Symp. on Princ. of Prog. Lang., pages 269--282, New York, NY, 1979. ACM Press.
[5]
P. Cousot and N. Halbwachs. Automatic discovery of linear constraints among variables of a program. In Symp. on Princ. of Prog. Lang., 1978.
[6]
C. Flanagan and S. Qadeer. Predicate abstraction for software verification. In Symp. on Princ.of Prog. Lang., pages 191--202, 2002.
[7]
D. Gopan, F. DiMaio, N. Dor,T. Reps, and M. Sagiv. Numeric domains with summarized dimensions. In Tools and Algorithms for the Construction and Analysis of Systems, pages 512--529, 2004.
[8]
N. Halbwachs, Y.-E. Proy, and P. Roumanoff. Verification of real-time systems using linear relation analysis. Formal Methods in System Design, 11(2):157--185, 1997.
[9]
S. K. Lahiri and R. E. Bryant. Indexed predicate discovery fof unbounded system verification. In Int. Conf.on Computer Aided Verification, pages 135--147, 2004.
[10]
L. Lamport. A new approach to proving the correctness of multiprocess programs. Trans. on Prog. Lang. and Syst., 1(1):84--97, July 1979.
[11]
T. Lev-Ami and M. Sagiv. TVLA: A system for implementing static analyses. In Static Analysis Symp.,pages 280--301, 2000.
[12]
R. Manevich,M. Sagiv,G. Ramalingam, and J. Field. Partially disjunctive heap abstraction. In Static Analysis Symp., pages 265--279, 2004.
[13]
F. Masdupuy. Array Indices Relational Semantic Analysis using Rational Cosets and Trapezoids. PhD thesis, Ecole Polytechnique, 1993.
[14]
A. Mine. The octagon abstract domain. In Proc. Eighth Working Conf. on Rev. Eng., pages 310--322, 2001.
[15]
A. Mine. A few graph-based relational numerical abstract domains. In Static Analysis Symp., pages 117--132, 2002.
[16]
G. Peterson. Myths about the mutual exclusion problem. Information Processing Letters, 12(3):115--116, June 1981.
[17]
T. Reps, M.S agiv, and A. Loginov. Finite differencing of logical formulas for static analysis. In Eurorean Symp. on Programming, pages 380--398, 2003.
[18]
T. Reps, M. Sagiv, and G. Yorsh. Symbolic implementation of the best transformer. In Verification, Model Checking, and Abstract Interpretation, pages 252--266, 2004.
[19]
M. Sagiv, T. Reps, and R. Wilhelm. Parametric shape analysis via 3-valued logic. Trans. on Prog. Lang. and Syst., 24(3):217--298, 2002.
[20]
P. Černý. Vérification pa interpétation abstraite de prédicats paramétriques. D.E.A. Report, Univ. Paris VII & ÉÉcole normale supérieure, September 2003.
[21]
G. Yorsh, T. Reps, and M. Sagiv. Symbolically computing most-precise abstract operations for shape analysis. In Tools and Algorithms for the Construction and Analysis of Systems, pages 530--545, 2004.

Cited By

View all
  • (2024)Precise Compositional Buffer Overflow Detection via Heap DisjointnessProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3652110(63-75)Online publication date: 11-Sep-2024
  • (2024)An input–output relational domain for algebraic data types and functional arraysFormal Methods in System Design10.1007/s10703-024-00456-zOnline publication date: 13-Jun-2024
  • (2024)Template-Based Verification of Array-Manipulating ProgramsTaming the Infinities of Concurrency10.1007/978-3-031-56222-8_12(206-224)Online publication date: 20-Mar-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
POPL '05: Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
January 2005
402 pages
ISBN:158113830X
DOI:10.1145/1040305
  • General Chair:
  • Jens Palsberg,
  • Program Chair:
  • Martín Abadi
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 40, Issue 1
    Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
    January 2005
    391 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1047659
    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: 12 January 2005

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. abstract numeric domains
  2. array analysis
  3. canonical abstraction
  4. program analysis
  5. summarization

Qualifiers

  • Article

Conference

POPL05

Acceptance Rates

Overall Acceptance Rate 860 of 4,328 submissions, 20%

Upcoming Conference

POPL '26

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)24
  • Downloads (Last 6 weeks)1
Reflects downloads up to 07 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Precise Compositional Buffer Overflow Detection via Heap DisjointnessProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3652110(63-75)Online publication date: 11-Sep-2024
  • (2024)An input–output relational domain for algebraic data types and functional arraysFormal Methods in System Design10.1007/s10703-024-00456-zOnline publication date: 13-Jun-2024
  • (2024)Template-Based Verification of Array-Manipulating ProgramsTaming the Infinities of Concurrency10.1007/978-3-031-56222-8_12(206-224)Online publication date: 20-Mar-2024
  • (2023)From Leaks to Fixes: Automated Repairs for Resource Leak WarningsProceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3611643.3616267(159-171)Online publication date: 30-Nov-2023
  • (2023)A Product of Shape and Sequence AbstractionsStatic Analysis10.1007/978-3-031-44245-2_15(310-342)Online publication date: 24-Oct-2023
  • (2021)LChecker: Detecting Loose Comparison Bugs in PHPProceedings of the Web Conference 202110.1145/3442381.3449826(2721-2732)Online publication date: 19-Apr-2021
  • (2021)Discovering Properties about Arrays via Path Dependence Analysis2021 International Symposium on Theoretical Aspects of Software Engineering (TASE)10.1109/TASE52547.2021.00022(55-62)Online publication date: Aug-2021
  • (2021)Simplify Array Processing Loops for Efficient Program Verification2021 IEEE 32nd International Symposium on Software Reliability Engineering (ISSRE)10.1109/ISSRE52982.2021.00049(401-411)Online publication date: Oct-2021
  • (2021)Data Abstraction: A General Framework to Handle Program Verification of Data StructuresStatic Analysis10.1007/978-3-030-88806-0_11(215-235)Online publication date: 13-Oct-2021
  • (2020)Detecting numerical bugs in neural network architecturesProceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3368089.3409720(826-837)Online publication date: 8-Nov-2020
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media