Runtime stacks are critical components of any modern software — they are used to implement powerful control structures such as function call/return, stack cutting and unwinding, coroutines, and thread context switch. Stack operations, however, are very hard to reason about: there are no known formal specifications for certifying C-style setjmp/longjmp, stack cutting and unwinding, or weak continuations (in C--). In many proof-carrying code (PCC) systems, return code pointers and exception handlers are treated as general first-class functions (as in continuation-passing style) even though both should have more limited scopes. In this paper we show that stack-based control abstractions follow a much simpler pattern than general first-class co...
Abstract. Proof-Carrying Code brings two big challenges to the re-search field of programming langua...
We present a Coq-based system to certify the entire process of implementing declarative mathematical...
Before software can be formally reasoned about, it must first be represented in some form of logic. ...
We propose an approach for the modular specification and verification of total correctness propertie...
We propose an approach for the modular specification and verification of total correctness propertie...
We propose an approach for the modular specification and verification of total correctness propertie...
This paper reports on the development and formal certification (proof of semantic preservation) of a...
Many real programs are written in multiple different programming languages, and supporting this patt...
Modern-day imperative programming languages such as C++, C# and Java offer protection facilities suc...
Abstract. Thread-modular verification is a promising approach for the verification of concurrent pro...
We present a methodology for generating a characterization of the memory used by an assembly program...
Enabling Hoare-style reasoning for low-level code is attractive since it opens the way to regain str...
International audienceFor all the successes in verifying low-level, efficient, security-critical cod...
I present Pyrosome1 , a generic framework for the verification of extensible, compositional compiler...
Abstract. We present a program logic, Lc, which modularly reasons about unstructured control flow in...
Abstract. Proof-Carrying Code brings two big challenges to the re-search field of programming langua...
We present a Coq-based system to certify the entire process of implementing declarative mathematical...
Before software can be formally reasoned about, it must first be represented in some form of logic. ...
We propose an approach for the modular specification and verification of total correctness propertie...
We propose an approach for the modular specification and verification of total correctness propertie...
We propose an approach for the modular specification and verification of total correctness propertie...
This paper reports on the development and formal certification (proof of semantic preservation) of a...
Many real programs are written in multiple different programming languages, and supporting this patt...
Modern-day imperative programming languages such as C++, C# and Java offer protection facilities suc...
Abstract. Thread-modular verification is a promising approach for the verification of concurrent pro...
We present a methodology for generating a characterization of the memory used by an assembly program...
Enabling Hoare-style reasoning for low-level code is attractive since it opens the way to regain str...
International audienceFor all the successes in verifying low-level, efficient, security-critical cod...
I present Pyrosome1 , a generic framework for the verification of extensible, compositional compiler...
Abstract. We present a program logic, Lc, which modularly reasons about unstructured control flow in...
Abstract. Proof-Carrying Code brings two big challenges to the re-search field of programming langua...
We present a Coq-based system to certify the entire process of implementing declarative mathematical...
Before software can be formally reasoned about, it must first be represented in some form of logic. ...