Verifying C++ Dynamic Binding

06/03/2023
by   Niels Mommen, et al.
0

We propose an approach for modular verification of programs written in an object-oriented language where, like in C++, the same virtual method call is bound to different methods at different points during the construction or destruction of an object. Our separation logic combines Parkinson and Bierman's abstract predicate families with essentially explicitly tracking each subobject's vtable pointer. Our logic supports polymorphic destruction. Virtual inheritance is not yet supported. We formalised our approach and implemented it in our VeriFast tool for semi-automated modular formal verification of C++ programs.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/28/2022

Verification of C++ Programs with VeriFast

VeriFast is a prototype tool based on separation logic for modular verif...
research
01/29/2019

Abstract I/O Specification

We recently proposed an approach for the specification and modular forma...
research
08/20/2020

DataProVe: A Data Protection Policy and System Architecture Verification Tool

In this paper, we propose a tool, called DataProVe, for specifying high-...
research
06/06/2019

Dynamically Allocated Memory Verification in Object-Oriented Programs using Prolog

A Prolog-based framework for fully automated verification currently unde...
research
11/05/2018

Formally Verifying WARP-V, an Open-Source TL-Verilog RISC-V Core Generator

Timing-abstract and transaction-level design using TL-Verilog have shown...
research
03/09/2020

RealityCheck: Bringing Modularity, Hierarchy, and Abstraction to Automated Microarchitectural Memory Consistency Verification

Modern SoCs are heterogeneous parallel systems comprised of components d...
research
10/05/2018

Prototyping Formal System Models with Active Objects

We propose active object languages as a development tool for formal syst...

Please sign up or login with your details

Forgot password? Click here to reset