Algorithmic Details behind the Predator Shape Analyser

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Dudka, Kamil, Muller, Petr, Peringer, Petr, Šoková, Veronika, Vojnar, Tomáš
Format: Preprint
Published: 2024
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866909152620576768
author Dudka, Kamil
Muller, Petr
Peringer, Petr
Šoková, Veronika
Vojnar, Tomáš
author_facet Dudka, Kamil
Muller, Petr
Peringer, Petr
Šoková, Veronika
Vojnar, Tomáš
contents This chapter, which is an extended and revised version of the conference paper 'Predator: Byte-Precise Verification of Low-Level List Manipulation', concentrates on a detailed description of the algorithms behind the Predator shape analyser based on abstract interpretation and symbolic memory graphs. Predator is particularly suited for formal analysis and verification of sequential non-recursive C code that uses low-level pointer operations to manipulate various kinds of linked lists of unbounded size as well as various other kinds of pointer structures of bounded size. The tool supports practically relevant forms of pointer arithmetic, block operations, address alignment, or memory reinterpretation. We present the overall architecture of the tool, along with selected implementation details of the tool as well as its extension into so-called Predator Hunting Party, which utilises multiple concurrently-running Predator analysers with various restrictions on their behaviour. Results of experiments with Predator within the SV-COMP competition as well as on our own benchmarks are provided.
format Preprint
id arxiv_https___arxiv_org_abs_2403_18491
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Algorithmic Details behind the Predator Shape Analyser
Dudka, Kamil
Muller, Petr
Peringer, Petr
Šoková, Veronika
Vojnar, Tomáš
Software Engineering
Programming Languages
This chapter, which is an extended and revised version of the conference paper 'Predator: Byte-Precise Verification of Low-Level List Manipulation', concentrates on a detailed description of the algorithms behind the Predator shape analyser based on abstract interpretation and symbolic memory graphs. Predator is particularly suited for formal analysis and verification of sequential non-recursive C code that uses low-level pointer operations to manipulate various kinds of linked lists of unbounded size as well as various other kinds of pointer structures of bounded size. The tool supports practically relevant forms of pointer arithmetic, block operations, address alignment, or memory reinterpretation. We present the overall architecture of the tool, along with selected implementation details of the tool as well as its extension into so-called Predator Hunting Party, which utilises multiple concurrently-running Predator analysers with various restrictions on their behaviour. Results of experiments with Predator within the SV-COMP competition as well as on our own benchmarks are provided.
title Algorithmic Details behind the Predator Shape Analyser
topic Software Engineering
Programming Languages
url https://arxiv.org/abs/2403.18491