Over the past decade, great progress has been made in the static modular verification of C code by means of separation logic-based program logics. However, the runtime guarantees offered by such verification are relatively limited when the verified modules are part of a whole program that also contains unverified modules. In particular, a memory safety error in an unverified module can corrupt the runtime state leading to assertion failures or invalid memory accesses, even in the verified modules. This paper develops runtime checks to be inserted at the boundary between the verified and the unverified part of a program, to guarantee that no assertion failures or invalid memory accesses can occur at runtime in any verified module. One of the...
C programs that manipulate list-based dynamic data structures remain a challenging target for static...
We present a new methodology for automatic verification of C programs against finite state machine s...
We present a methodology for the verification of Message Passing Interface (MPI) programs written...
Over the past decade, great progress has been made in the static modular verification of C code by m...
Over the past decade, great progress has been made in the static modular verification of C code by m...
C programs may dynamically load and unload modules. For example, some operating system kernels suppo...
C is the most widely used imperative system's implementation language. While C provides types and hi...
C programs may dynamically load and unload modules. For example, some operating system kernels suppo...
In this PhD thesis, we present automatic and modular solutions to the three main problems that come ...
Programs in unsafe languages, like C and C++, may dynamically load and unload modules. For example, ...
Modern-day imperative programming languages such as C++, C# and Java offer protection facilities suc...
Most current approaches to software verification are one-sided -- a safety prover will try to prove ...
We propose an approach for the modular specification and verification of total correctness propertie...
In our increasingly computer-oriented society, the computer programs we rely on tend to increase in ...
Formal verification enables developers to provide safety and security guarantees about their code. ...
C programs that manipulate list-based dynamic data structures remain a challenging target for static...
We present a new methodology for automatic verification of C programs against finite state machine s...
We present a methodology for the verification of Message Passing Interface (MPI) programs written...
Over the past decade, great progress has been made in the static modular verification of C code by m...
Over the past decade, great progress has been made in the static modular verification of C code by m...
C programs may dynamically load and unload modules. For example, some operating system kernels suppo...
C is the most widely used imperative system's implementation language. While C provides types and hi...
C programs may dynamically load and unload modules. For example, some operating system kernels suppo...
In this PhD thesis, we present automatic and modular solutions to the three main problems that come ...
Programs in unsafe languages, like C and C++, may dynamically load and unload modules. For example, ...
Modern-day imperative programming languages such as C++, C# and Java offer protection facilities suc...
Most current approaches to software verification are one-sided -- a safety prover will try to prove ...
We propose an approach for the modular specification and verification of total correctness propertie...
In our increasingly computer-oriented society, the computer programs we rely on tend to increase in ...
Formal verification enables developers to provide safety and security guarantees about their code. ...
C programs that manipulate list-based dynamic data structures remain a challenging target for static...
We present a new methodology for automatic verification of C programs against finite state machine s...
We present a methodology for the verification of Message Passing Interface (MPI) programs written...