An abstract domain for analyzing heap-manipulating low-level software

被引:0
|
作者
Gulwani, Sumit [1 ]
Tiwari, Ashish [2 ]
机构
[1] Microsoft Res, Redmond, WA 98052 USA
[2] SRI Int, Menlo Pk, CA 94025 USA
来源
基金
美国国家科学基金会;
关键词
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We describe an abstract domain for representing useful invariants of heap-manipulating programs (in presence of recursive data structures and pointer arithmetic) written in languages like C or low-level code. This abstract domain allows representation of must and may equalities among pointer expressions. Pointer expressions contain existentially or universally quantified integer variables guarded by some base domain constraint. We allow quantification of a special form, namely there exists for all quantification, to balance expressiveness with efficient automated deduction. The existential quantification is over some dummy non-program variables, which are automatically made explicit by our analysis to express useful program invariants. The universal quantifier is used to express properties of collections of memory locations. Our abstract interpreter automatically computes invariants about programs over this abstract domain. We present initial experimental results demonstrating the effectiveness of this abstract domain on some common coding patterns.
引用
收藏
页码:379 / +
页数:3
相关论文
共 50 条
  • [1] A reachability predicate for analyzing low-level software
    Chatterjee, Shaunak
    Lahiri, Shuvendu K.
    Qadeer, Shaz
    Rakamaric, Zvonimir
    TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, PROCEEDINGS, 2007, 4424 : 19 - +
  • [2] Analyzing Emotional Semantics of Abstract Art Using Low-Level Image Features
    Zhang, He
    Augilius, Eimontas
    Honkela, Timo
    Laaksonen, Jorma
    Gamper, Hannes
    Alene, Henok
    ADVANCES IN INTELLIGENT DATA ANALYSIS X: IDA 2011, 2011, 7014 : 413 - +
  • [3] Software Tools for Low-Level Software and Operating Systems Classes
    Walter, Maxwell
    Karlsson, Sven
    WCAE'17: PROCEEDINGS OF THE 19TH WORKSHOP ON COMPUTER ARCHITECTURE EDUCATION, 2017, : 16 - 23
  • [4] STRAPS - A SOFTWARE TRANSPORT-SYSTEM FOR LOW-LEVEL SOFTWARE
    FAIRFIELD, P
    JOURNAL OF SYSTEMS AND SOFTWARE, 1985, 5 (04) : 291 - 302
  • [5] Low-Level Control Software for the WEAVE Spectrograph
    Salasnich, Bernardo
    Martin Perez, Carlos
    Miguel Delgado, Jose
    Pico, Sergio
    Cano Infantes, Diego
    Stuik, Remko
    Baruffolo, Andrea
    Dalton, Gavin
    Trager, Scott
    Lopez Aguerri, Jose Alfonso
    Bonifacio, Piercarlo
    Vallenari, Antonella
    Carrasco, Esperanza
    Carlos Abrams, Don
    Middleton, Kevin
    SOFTWARE AND CYBERINFRASTRUCTURE FOR ASTRONOMY V, 2018, 10707
  • [6] A customizable component for low-level communication software
    Santos, TRC
    Frohlich, AA
    HPCS 2005: 19TH INTERNATIONAL SYMPOSIUM ON HIGH PERFORMANCE COMPUTING SYSTEMS AND APPLICATIONS, PROCEEDINGS, 2005, : 58 - 64
  • [7] Enforcing high-level protocols in low-level software
    DeLine, R
    Fähndrich, M
    ACM SIGPLAN NOTICES, 2001, 36 (05) : 59 - 69
  • [8] Effective Verification of Low-Level Software with Nested Interrupts
    Kroening, Daniel
    Liang, Lihao
    Melham, Tom
    Schrammel, Peter
    Tautschnig, Michael
    2015 DESIGN, AUTOMATION & TEST IN EUROPE CONFERENCE & EXHIBITION (DATE), 2015, : 229 - 234
  • [9] A Theory of Platform-Dependent Low-Level Software
    Nita, Marius
    Grossman, Dan
    Chambers, Craig
    POPL'08: PROCEEDINGS OF THE 35TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2008, : 209 - 220
  • [10] Effective Verification for Low-Level Software with Competing Interrupts
    Liang, Lihao
    Melham, Tom
    Kroening, Daniel
    Schrammel, Peter
    Tautschnig, Michael
    ACM TRANSACTIONS ON EMBEDDED COMPUTING SYSTEMS, 2018, 17 (02)