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 …
Compositional Symbolic Execution for Correctness and Incorrectness Reasoning (Extended Version)
The introduction of separation logic has led to the development of symbolic execution
techniques and tools that are (functionally) compositional with function specifications that …
techniques and tools that are (functionally) compositional with function specifications that …
Automatically deriving JavaScript static analyzers from specifications using meta-level static analysis
JavaScript is one of the most dominant programming languages. However, despite its
popularity, it is a challenging task to correctly understand the behaviors of JavaScript …
popularity, it is a challenging task to correctly understand the behaviors of JavaScript …
Object-Oriented Fixpoint Programming with Datalog
Modern usages of Datalog exceed its original design purpose in scale and complexity. In
particular, Datalog lacks abstractions for code organization and reuse, making programs …
particular, Datalog lacks abstractions for code organization and reuse, making programs …
Compiling with abstract interpretation
D Lesbre, M Lemerre - Proceedings of the ACM on Programming …, 2024 - dl.acm.org
Rewriting and static analyses are mutually beneficial techniques: program transformations
change the intensional aspects of the program, and can thus improve analysis precision …
change the intensional aspects of the program, and can thus improve analysis precision …
Fusing industry and academia at GitHub (experience report)
P Thomson, R Rix, N Wu, T Schrijvers - Proceedings of the ACM on …, 2022 - dl.acm.org
GitHub hosts hundreds of millions of code repositories written in hundreds of different
programming languages. In addition to its hosting services, GitHub provides data and …
programming languages. In addition to its hosting services, GitHub provides data and …
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 …
Practical multiverse debugging through user-defined reductions: Application to uml models
Multiverse debugging is an extension of classical debugging methods, particularly adapted
to non-deterministic systems. Recently, a language-independent formalization was …
to non-deterministic systems. Recently, a language-independent formalization was …