Safer smart contract programming with Scilla
The rise of programmable open distributed consensus platforms based on the blockchain
technology has aroused a lot of interest in replicated stateful computations, aka smart …
technology has aroused a lot of interest in replicated stateful computations, aka smart …
Gillian, part i: a multi-language platform for symbolic execution
We introduce Gillian, a platform for developing symbolic analysis tools for programming
languages. Here, we focus on the symbolic execution engine at the heart of Gillian, which is …
languages. Here, we focus on the symbolic execution engine at the heart of Gillian, which is …
Combinator-Based Fixpoint Algorithms for Big-Step Abstract Interpreters
Big-step abstract interpreters are an approach to build static analyzers based on big-step
interpretation. While big-step interpretation provides a number of benefits for the definition of …
interpretation. While big-step interpretation provides a number of benefits for the definition of …
Abstract interpretation: past, present and future
P Cousot, R Cousot - Proceedings of the Joint Meeting of the Twenty …, 2014 - dl.acm.org
Abstract interpretation is a theory of abstraction and constructive approximation of the
mathematical structures used in the formal description of complex or infinite systems and the …
mathematical structures used in the formal description of complex or infinite systems and the …
Abstracting definitional interpreters (functional pearl)
In this functional pearl, we examine the use of definitional interpreters as a basis for abstract
interpretation of higher-order programming languages. As it turns out, definitional …
interpretation of higher-order programming languages. As it turns out, definitional …
Compiling symbolic execution with staging and algebraic effects
Building effective symbolic execution engines poses challenges in multiple dimensions: an
engine must correctly model the program semantics, provide flexibility in symbolic execution …
engine must correctly model the program semantics, provide flexibility in symbolic execution …
Sound and reusable components for abstract interpretation
Abstract interpretation is a methodology for defining sound static analysis. Yet, building
sound static analyses for modern programming languages is difficult, because these static …
sound static analyses for modern programming languages is difficult, because these static …
Staged abstract interpreters: Fast and modular whole-program analysis via meta-programming
It is well known that a staged interpreter is a compiler: specializing an interpreter to a given
program produces an equivalent executable that runs faster. This connection is known as …
program produces an equivalent executable that runs faster. This connection is known as …
Compositional soundness proofs of abstract interpreters
Abstract interpretation is a technique for developing static analyses. Yet, proving abstract
interpreters sound is challenging for interesting analyses, because of the high proof …
interpreters sound is challenging for interesting analyses, because of the high proof …
Galois transformers and modular abstract interpreters: reusable metatheory for program analysis
The design and implementation of static analyzers has become increasingly systematic. Yet
for a given language or analysis feature, it often requires tedious and error prone work to …
for a given language or analysis feature, it often requires tedious and error prone work to …