Inferring contracts by abstract interpretation with application to pointer nullness analysis

Abstract This paper proposes a semantic static analysis for inferring nullable or non-null pointer annotations in low level programs. The analysis is formulated on a minimalistic imperative language and it is expressed as a least fixpoint computation over pointer annotations calling a sound type-checking algorithm. Therefore, this analysis may be used for more general annotations than pointer nullability. We prove two main properties for this approach: (1) when using a sound and precise type-checker (i.e., without false alarms), it will find an annotation that guarantees the absence of run-time errors due to pointer deference, if such an annotation exists, (2) when the type-checker is only sound, the errors singled out by the analysis are real errors. We report on the implementation of this method in Codex , a static analyzer for C and binary code. Codex already provides an abstract interpretation based type-checker for a rich dependent type systems. The evaluation of our implementation on a benchmark of challenging programs shows that the inference is better than manual annotations obtained by code inspection.

Authors

Institutions

Publication Details

Journal
International Journal on Software Tools for Technology Transfer
Published
2026-03-16
DOI
https://doi.org/10.1007/s10009-026-00846-0
Primary Topic
Logic, programming, and type systems
Type
article
Field-Weighted Citation Impact
0.00

Funders

Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Inferring contracts by abstract interpretation with application to pointer nullness analysis

Mihaela Sighireanu, Matthieu Lemerre, Paul Robert
International Journal on Software Tools for Technology Transfer
Logic, programming, and type systems
article

Inferring contracts by abstract interpretation with application to pointer nullness analysis

Mihaela Sighireanu, Matthieu Lemerre, Paul Robert
article en

Abstract

Abstract This paper proposes a semantic static analysis for inferring nullable or non-null pointer annotations in low level programs. The analysis is formulated on a minimalistic imperative language and it is expressed as a least fixpoint computation over pointer annotations calling a sound type-checking algorithm. Therefore, this analysis may be used for more general annotations than pointer nullability. We prove two main properties for this approach: (1) when using a sound and precise type-checker (i.e., without false alarms), it will find an annotation that guarantees the absence of run-time errors due to pointer deference, if such an annotation exists, (2) when the type-checker is only sound, the errors singled out by the analysis are real errors. We report on the implementation of this method in Codex , a static analyzer for C and binary code. Codex already provides an abstract interpretation based type-checker for a rich dependent type systems. The evaluation of our implementation on a benchmark of challenging programs shows that the inference is better than manual annotations obtained by code inspection.

International Journal on Software Tools for Technology Transfer
Commissariat à l'Énergie Atomique et aux Énergies Alternatives (FR), Université Paris-Saclay (FR), Laboratoire d'Intégration des Systèmes et des Technologies (FR)
Université Paris-Saclay
Openalex Percentile: Top 23%
Logic, programming, and type systems
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.

Inferring contracts by abstract interpretation with application to pointer nullness analysis — Mihaela Sighireanu, Matthieu Lemerre, et al. · International Journal on Software Tools for Technology Transfer (2026) | TGRS Research Map | TGRS