Safer smart contract programming with Scilla

I Sergey, V Nagaraj, J Johannsen, A Kumar… - Proceedings of the …, 2019 - dl.acm.org
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 …

Gillian, part i: a multi-language platform for symbolic execution

J Fragoso Santos, P Maksimović, SÉ Ayoun… - Proceedings of the 41st …, 2020 - dl.acm.org
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 …

Combinator-Based Fixpoint Algorithms for Big-Step Abstract Interpreters

S Keidel, S Erdweg, T Hombücher - Proceedings of the ACM on …, 2023 - dl.acm.org
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 …

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 …

Abstracting definitional interpreters (functional pearl)

D Darais, N Labich, PC Nguyen… - Proceedings of the ACM on …, 2017 - dl.acm.org
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 …

Compiling symbolic execution with staging and algebraic effects

G Wei, O Bračevac, S Tan, T Rompf - Proceedings of the ACM on …, 2020 - dl.acm.org
Building effective symbolic execution engines poses challenges in multiple dimensions: an
engine must correctly model the program semantics, provide flexibility in symbolic execution …

Sound and reusable components for abstract interpretation

S Keidel, S Erdweg - Proceedings of the ACM on Programming …, 2019 - dl.acm.org
Abstract interpretation is a methodology for defining sound static analysis. Yet, building
sound static analyses for modern programming languages is difficult, because these static …

Staged abstract interpreters: Fast and modular whole-program analysis via meta-programming

G Wei, Y Chen, T Rompf - Proceedings of the ACM on Programming …, 2019 - dl.acm.org
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 …

Compositional soundness proofs of abstract interpreters

S Keidel, CB Poulsen, S Erdweg - Proceedings of the ACM on …, 2018 - dl.acm.org
Abstract interpretation is a technique for developing static analyses. Yet, proving abstract
interpreters sound is challenging for interesting analyses, because of the high proof …

Galois transformers and modular abstract interpreters: reusable metatheory for program analysis

D Darais, M Might, D Van Horn - ACM SIGPLAN Notices, 2015 - dl.acm.org
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 …