From Concurrent Programs to Simulating Sequential Programs: Correctness of a Transformation

08/24/2017
by   Allan Blanchard, et al.
0

Frama-C is a software analysis framework that provides a common infrastructure and a common behavioral specification language to plugins that implement various static and dynamic analyses of C programs. Most plugins do not support concurrency. We have proposed Conc2Seq, a Frama-C plugin based on program transformation, capable to leverage the existing huge code base of plugins and to handle concurrent C programs. In this paper we formalize and sketch the proof of correctness of the program transformation principle behind Conc2Seq, and present an effort towards the full mechanization of both the formalization and proofs with the proof assistant Coq.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/16/2019

On correctness of an n queens program

Thom Frühwirth presented a short, elegant and efficient Prolog program f...
research
04/10/2018

ConPredictor: Concurrency Defect Prediction in Real-World Applications

Concurrent programs are difficult to test due to their inherent non-dete...
research
09/12/2019

Tasks in Modular Proofs of Concurrent Algorithms

Proving correctness of distributed or concurrent algorithms is a mind-ch...
research
09/05/2020

Computer Program Decomposition and Dynamic/Behavioral Modeling

Decomposition, statically dividing a program into multiple units, is a c...
research
10/13/2018

Analyzing and Disentangling Interleaved Interrupt-driven IoT Programs

In the Internet of Things (IoT) community, Wireless Sensor Network (WSN)...
research
06/03/2021

Optimistic Concurrency Control for Real-world Go Programs (Extended Version with Appendix)

We present a source-to-source transformation framework, GOCC, that consu...
research
04/09/2021

Automatically Enforcing Fresh and Consistent Inputs in Intermittent Systems

Intermittently powered energy-harvesting devices enable new applications...

Please sign up or login with your details

Forgot password? Click here to reset