skip to main content
10.1145/1363686.1363736acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
research-article

Pentagons: a weakly relational abstract domain for the efficient validation of array accesses

Published: 16 March 2008 Publication History

Abstract

We introduce Pentagons (Pntg), a weakly relational numerical abstract domain useful for the validation of array accesses in byte-code and intermediate languages (IL). This abstract domain captures properties of the form of x ε [a, b]∧x < y. It is more precise than the well known Interval domain, but it is less precise than the Octagon domain.
The goal of Pntg is to be a lightweight numerical domain useful for adaptive static analysis, where Pntg is used to quickly prove the safety of most array accesses, restricting the use of more precise (but also more expensive) domains to only a small fraction of the code.
We implemented the Pntg abstract domain in Clousot, a generic abstract interpreter for .NET assemblies. Using it, we were able to validate 83% of array accesses in the core runtime library mscorlib.dll in less than 8 minutes.

References

[1]
R. Bagnara, P. M. Hill, E. Mazzi, and E. Zaffanella. Widening operators for weakly-relational numeric abstractions. In SAS'05. Springer-Verlag, Sept. 2005.
[2]
B. Blanchet, P. Cousot, R. Cousot, J. Feret, L. Mauborgne, A. Miné, D. Monniaux, and X. Rival. A static analyzer for large safety-critical software. In PLDI'03. ACM Press, June 2003.
[3]
P. Cousot. Verification by abstract interpretation. In Verification: Theory and Practice. Springer-Verlag, 2003.
[4]
P. Cousot and R. Cousot. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In POPL'77. ACM press, Jan. 1977.
[5]
P. Cousot and R. Cousot. Systematic design of program analysis frameworks. In POPL '79, pages 269--282. ACM Press, Jan. 1979.
[6]
P. Cousot and N. Halbwachs. Automatic discovery of linear restraints among variables of a program. In POPL '78. ACM Press, Jan. 1978.
[7]
ECMA. Standard ECMA-335, Common Language Infrastructure (CLI). http://www.ecma-international.org/-publications/standards/ecma-335.htm, Ecma International, 2006.
[8]
F. Logozzo. Cibai: An abstract interpretation-based static analyzer for modular analysis and verification of Java classes. In VMCAI'07. Springer-Verlag, Jan. 2007.
[9]
A. Miné. The octagon abstract domain. In WCRE 2001. IEEE Computer Society, Oct. 2001.
[10]
J. Navas, E. Mera, P. López-García, and M. V. Hermenegildo. User-definable resource bounds analysis for logic programs. In ICLP'07. Springer-Verlag, Sept. 2007.
[11]
A. Simon, A. King, and J. M. Howe. Two variables per linear inequality as an abstract domain. In LOPSTR'02. Springer-Verlag, 2002.
[12]
A. Venet. Nonuniform alias analysis of recursive data structures and arrays. In SAS'02. Springer-Verlag, Sept. 2002.
[13]
A. Venet and G. P. Brat. Precise and efficient static array bound checking for large embedded c programs. In PLDI'04. ACM Press, July 2004.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SAC '08: Proceedings of the 2008 ACM symposium on Applied computing
March 2008
2586 pages
ISBN:9781595937537
DOI:10.1145/1363686
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: 16 March 2008

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. .NET framework
  2. abstract domains
  3. abstract interpretation
  4. bounds checking
  5. numerical domains
  6. static analysis

Qualifiers

  • Research-article

Conference

SAC '08
Sponsor:
SAC '08: The 2008 ACM Symposium on Applied Computing
March 16 - 20, 2008
Fortaleza, Ceara, Brazil

Acceptance Rates

Overall Acceptance Rate 1,650 of 6,669 submissions, 25%

Upcoming Conference

SAC '25
The 40th ACM/SIGAPP Symposium on Applied Computing
March 31 - April 4, 2025
Catania , Italy

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)14
  • Downloads (Last 6 weeks)4
Reflects downloads up to 10 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Floating-Point TVPI Abstract DomainProceedings of the ACM on Programming Languages10.1145/36563958:PLDI(442-466)Online publication date: 20-Jun-2024
  • (2023)Octagons RevisitedStatic Analysis10.1007/978-3-031-44245-2_21(485-507)Online publication date: 22-Oct-2023
  • (2023)Clustered Relational Thread-Modular Abstract Interpretation with Local TracesProgramming Languages and Systems10.1007/978-3-031-30044-8_2(28-58)Online publication date: 22-Apr-2023
  • (2021)PICOACM Transactions on Architecture and Code Optimization10.1145/346043418:4(1-27)Online publication date: 17-Jul-2021
  • (2021)A Fresh Look at Zones and OctagonsACM Transactions on Programming Languages and Systems10.1145/345788543:3(1-51)Online publication date: 3-Sep-2021
  • (2019)Concerto: a framework for combined concrete and abstract interpretationProceedings of the ACM on Programming Languages10.1145/32903563:POPL(1-29)Online publication date: 2-Jan-2019
  • (2018)Lightweight verification of array indexingProceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3213846.3213849(3-14)Online publication date: 12-Jul-2018
  • (2018)A Demand-Driven Pointer-Range Analysis Technique for Data Transmission Optimization2018 IEEE Intl Conf on Parallel & Distributed Processing with Applications, Ubiquitous Computing & Communications, Big Data & Cloud Computing, Social Computing & Networking, Sustainable Computing & Communications (ISPA/IUCC/BDCloud/SocialCom/SustainCom)10.1109/BDCloud.2018.00088(557-564)Online publication date: Dec-2018
  • (2018)Combining range and inequality information for pointer disambiguationScience of Computer Programming10.1016/j.scico.2017.10.014152:C(161-184)Online publication date: 15-Jan-2018
  • (2018)Template polyhedra and bilinear optimizationFormal Methods in System Design10.1007/s10703-018-0323-1Online publication date: 4-Sep-2018
  • 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