Borrowing Safe Pointers from Rust in SPARK

05/15/2018
by   Georges-Axel Jaloyan, et al.
0

In the field of deductive software verification, programs with pointers present a major challenge due to pointer aliasing. In this paper, we introduce pointers to SPARK, a well-defined subset of the Ada language, intended for formal verification of mission-critical software. Our solution uses a permission-based static alias analysis method inspired by Rust's borrow-checker and affine types, and enforces the Concurrent Read, Exclusive Write policy. This analysis has been implemented in the GNAT Ada compiler and tested against a number of challenging examples. In the paper, we give a formal presentation of the analysis rules for a miniature version of SPARK and prove their soundness. We discuss the implementation and compare our solution with Rust.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/19/2017

Safe Pointers in SPARK 2014

In the context of deductive software verification, programs with pointer...
research
12/15/2016

HADES: Microprocessor Hazard Analysis via Formal Verification of Parameterized Systems

HADES is a fully automated verification tool for pipeline-based micropro...
research
04/13/2018

CUBA: Interprocedural Context-UnBounded Analysis of Concurrent Programs (Extended Manuscript)

A classical result by Ramalingam about synchronization-sensitive interpr...
research
08/28/2019

Modular Verification of Autonomous Space Robotics

Ensuring that autonomous space robot control software behaves as it shou...
research
03/11/2019

Towards Deriving Verification Properties

Formal software verification uses mathematical techniques to establish t...
research
07/05/2020

A Framework for Modelling, Verification and Transformation of Concurrent Imperative Programs

The paper gives a comprehensive presentation of a framework, embedded in...
research
05/15/2023

PSTM Transaction Scheduler Verification Based on CSP and Testing

Many online transaction scheduler architectures and algorithms for vario...

Please sign up or login with your details

Forgot password? Click here to reset