2020
DOI: 10.1007/978-3-030-65474-0_11
|View full text |Cite
|
Sign up to set email alerts
|

A Library Modeling Language for the Static Analysis of C Programs

Abstract: We present a specification language aiming at soundly modeling unavailable functions in a static analyzer for C by abstract interpretation. It takes inspiration from Behavioral Interface Specification Languages popular in deductive verification, notably Frama-C's ACSL, as we annotate function prototypes with pre and post-conditions expressed concisely in a first-order logic, but with key differences. Firstly, the specification aims at replacing a function implementation in a safety analysis, not verifying its … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
6
0

Year Published

2021
2021
2024
2024

Publication Types

Select...
5
1

Relationship

3
3

Authors

Journals

citations
Cited by 6 publications
(8 citation statements)
references
References 14 publications
0
6
0
Order By: Relevance
“…We reuse the states defined in the work of Monat et al [33] for Python and Ouadjaout and Miné [37] for C. A set of heap addresses Addr (potentially infinite) is common to the states. Previous works [11,33,37] define the semantics of Python and C. Python state (Figure 3). Python objects are split into a nominal part and a structural part.…”
Section: Concrete Semanticsmentioning
confidence: 99%
See 3 more Smart Citations
“…We reuse the states defined in the work of Monat et al [33] for Python and Ouadjaout and Miné [37] for C. A set of heap addresses Addr (potentially infinite) is common to the states. Previous works [11,33,37] define the semantics of Python and C. Python state (Figure 3). Python objects are split into a nominal part and a structural part.…”
Section: Concrete Semanticsmentioning
confidence: 99%
“…We assume the abstract semantics of Python and C are provided through E # p • , E # c • . These can be instantiated in practice using previous works [37,34]. We assume that each language's abstract state relies on an address allocation abstraction (such as the callsite abstraction or the recency abstraction [2]) and a numeric abstraction (such as intervals, octagons, …).…”
Section: Abstract Semanticsmentioning
confidence: 99%
See 2 more Smart Citations
“…Yet, DV à la Dijkstra [24] is the tool of choice for proving them for all possible executions. Abstract interpretation à la Cousot [49] is also possible [18,45], as well as model checking [6], even if several logical properties cannot be easily verified with these techniques. Nowadays, most tools based on BISL support both RAC and DV, e.g.…”
Section: Behavioral Interface Specification Languagesmentioning
confidence: 99%