Laure Gonnord

dblp:28/3884 · DBLP profile ↗
← Back
24ranked-venue papers
4as first author
8since 2021 · last 2025
0000-0002-8013-1611ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 20 · 3 first-author · 7 since 2021Theory of computation · 4 · 3 since 2021Systems, architecture and hardware · 2Artificial intelligence and machine learning · 1 · 1 since 2021Applied, interdisciplinary, general and emerging computing · 1 · 1 first-author
YearPublicationVenuePosition
2025 A Lean-based Language for Teaching Proof in High School
Frédéric Tran Minh, Laure Gonnord, Julien Narboux
CICM2
2024 From Low-Level Fault Modeling (of a Pipeline Attack) to a Proven Hardening Scheme
abstract
Fault attacks present unique safety and security challenges that require dedicated countermeasures, even for bug-free programs. Models of these complex attacks are made workable by approximating their effects to a suitable level of abstraction. The common practice of targeting the Instruction Set Architecture (ISA) level isn't ideal because it discards important micro-architectural information, leading to weaker security guarantees. Conversely, including micro-architectural details makes countermeasures harder to model and reason about, creating a new challenge in validating and trusting protections.
Sébastien Michelland, Christophe Deleuze, Laure Gonnord
CC3
2024 On Complexity Bounds and Confluence of Parallel Term Rewriting
abstract
We revisit parallel-innermost term rewriting as a model of parallel computation on inductive data structures and provide a corresponding notion of runtime complexity parametric in the size of the start term. We propose automatic techniques to derive both upper and lower bounds on parallel complexity of rewriting that enable a direct reuse of existing techniques for sequential complexity. Our approach to find lower bounds requires confluence of the parallel-innermost rewrite relation, thus we also provide effective sufficient criteria for proving confluence. The applicability and the precision of the method are demonstrated by the relatively light effort in extending the program analysis tool APROVE and by experiments on numerous benchmarks from the literature.
Thaïs Baudon, Carsten Fuhs, Laure Gonnord
Fundam. Informaticae3
2024 Abstract Interpreters: A Monadic Approach to Modular Verification
abstract
We argue that monadic interpreters built as layers of handlers stacked atop the free monad, as advocated notably by the ITree library, also constitute a promising way to implement and verify abstract interpreters in dependently-typed theories such as the one underlying the Coq proof assistant. The approach enables both code reuse across projects and modular proofs of soundness of the resulting interpreters. We provide generic abstract control flow combinators proven correct once and for all against their concrete counterpart. We demonstrate how to relate concrete handlers implementing effects to abstract variants of these handlers, essentially capturing the traditional soundness of transfer functions in the context of monadic interpreters. Finally, we provide generic results to lift soundness statements via the interpretation of stateful and failure effects. We formalize all the aforementioned combinators and theories into a Coq library, and demonstrate their benefits by implementing and proving correct two illustrative abstract interpreters respectively for a structured imperative language and a toy assembly.
Sébastien Michelland, Yannick Zakowski, Laure Gonnord
Proc. ACM Program. Lang.3
2023 Bit-Stealing Made Legal: Compilation for Custom Memory Representations of Algebraic Data Types
abstract
Initially present only in functional languages such as OCaml and Haskell, Algebraic Data Types (ADTs) have now become pervasive in mainstream languages, providing nice data abstractions and an elegant way to express functions through pattern matching. Unfortunately, ADTs remain seldom used in low-level programming. One reason is that their increased convenience comes at the cost of abstracting away the exact memory layout of values. Even Rust, which tries to optimize data layout, severely limits control over memory representation. In this article, we present a new approach to specify the data layout of rich data types based on a dual view: a source type, providing a high-level description available in the rest of the code, along with a memory type, providing full control over the memory layout. This dual view allows for better reasoning about memory layout, both for correctness, with dedicated validity criteria linking the two views, and for optimizations that manipulate the memory view. We then provide algorithms to compile constructors and destructors, including pattern matching, to their low-level memory representation. We prove our compilation algorithms correct, implement them in a tool called ribbit that compiles to LLVM IR, and show some early experimental results.
Thaïs Baudon, Gabriel Radanne, Laure Gonnord
Proc. ACM Program. Lang.3
2022 Analysing Parallel Complexity of Term Rewriting
abstract
We revisit parallel-innermost term rewriting as a model of parallel computation on inductive data structures and provide a corresponding notion of runtime complexity parametric in the size of the start term. We propose automatic techniques to derive both upper and lower bounds on parallel complexity of rewriting that enable a direct reuse of existing techniques for sequential complexity. The applicability and the precision of the method are demonstrated by the relatively light effort in extending the program analysis tool AProVE and by experiments on numerous benchmarks from the literature.
Thaïs Baudon, Carsten Fuhs, Laure Gonnord
LOPSTR3
2021 Compiling pattern matching to in-place modifications
abstract
Algebraic data types and pattern matching are popular tools to build programs manipulating complex datastructures in a safe yet efficient manner. On top of its safety advantages, compilation techniques can turn pattern matching into highly efficient deconstruction code for immutable use cases. Conversely, high-performance datastructures and languages prefer to leverage (controlled) mutations to maximize time and memory efficiency. Algebraic data types provide a natural framework to efficiently describe in-place transformations as rewrite rules. Such representation could take advantage of parallelism opportunities that appear in tree-like structures.
Paul Iannetta, Laure Gonnord, Gabriel Radanne
GPCE2
2021 Data Abstraction: A General Framework to Handle Program Verification of Data Structures
Julien Braine, Laure Gonnord, David Monniaux
SAS2
2019 Static Analysis of Binary Code with Memory Indirections Using Polyhedra
Clément Ballabriga, Julien Forget, Laure Gonnord, Giuseppe Lipari, Jordy Ruiz
VMCAI3
2018 Polyhedral Dataflow Programming: A Case Study
abstract
Dataflow languages expose the application's potential parallelism naturally and have thus been studied and developped for the past thirty years as a solution for harnessing the increasing hardware parallelism. However, when generating code for parallel processors, current dataflow compilers only take into consideration the overall dataflow network of the application. This leaves out the potential parallelism that could be extracted from the internals of agents, typically when those include loop nests, for instance, but also potential application of intra-agent plpelining, or task spliting and rescheduling. In this work, we study the benefits of jointly using polyhedral compilation with dataflow languages. More precisely, we propose to expend the parallelization of dataflow programs by taking into account the parallelism exposed by loop nests describing the internal behavior of the program's agents. This approach is validated through the development of a prototype toolchain based on an extended version of the ΣC language. We demonstrate the benefit of this approach and the potentiality of further improvements on relevant case studies.
Romain Fontaine, Laure Gonnord, Lionel Morel
SBAC-PAD2
2018 Combining range and inequality information for pointer disambiguation
Maroua Maalej, Vitor Paisante, Fernando Magno Quintão Pereira, Laure Gonnord
Sci. Comput. Program.4
2017 Pointer disambiguation via strict inequalities
Maroua Maalej, Vitor Paisante, Laure Gonnord, Fernando Magno Quintão Pereira
CGO4
2016 Symbolic range analysis of pointers
abstract
Alias analysis is one of the most fundamental techniques that compilers use to optimize languages with pointers. However, in spite of all the attention that this topic has received, the current state-of-the-art approaches inside compilers still face challenges regarding precision and speed. In particular, pointer arithmetic, a key feature in C and C++, is yet to be handled satisfactorily. This paper presents a new alias analysis algorithm to solve this problem. The key insight of our approach is to combine alias analysis with symbolic range analysis. This combination lets us disambiguate fields within arrays and structs, effectively achieving more precision than traditional algorithms. To validate our technique, we have implemented it on top of the LLVM compiler. Tests on a vast suite of benchmarks show that we can disambiguate several kinds of C idioms that current state-of-the-art analyses cannot deal with. In particular, we can disambiguate 1.35x more queries than the alias analysis currently available in LLVM. Furthermore, our analysis is very fast: we can go over one million assembly instructions in 10 seconds.
Vitor Paisante, Maroua Maalej, Leonardo B. Oliveira, Laure Gonnord, Fernando Magno Quintão Pereira
CGO4
2016 Cell Morphing: From Array Programs to Array-Free Horn Clauses
David Monniaux, Laure Gonnord
SAS2
2015 Synthesis of ranking functions using extremal counterexamples
abstract
We present a complete method for synthesizing lexicographic linear ranking functions (and thus proving termination), supported by inductive invariants, in the case where the transition relation of the program includes disjunctions and existentials (large block encoding of control flow). Previous work would either synthesize a ranking function at every basic block head, not just loop headers, which reduces the scope of programs that may be proved to be terminating, or expand large block transitions including tests into (exponentially many) elementary transitions, prior to computing the ranking function, resulting in a very large global constraint system. In contrast, our algorithm incrementally refines a global linear constraint system according to extremal counterexamples: only constraints that exclude spurious solutions are included. Experiments with our tool Termite show marked performance and scalability improvements compared to other systems.
Laure Gonnord, David Monniaux, Gabriel Radanne
PLDI1
2014 Validation of memory accesses through symbolic analyses
abstract
The C programming language does not prevent out-of-bounds memory accesses. There exist several techniques to secure C programs; however, these methods tend to slow down these programs substantially, because they populate the binary code with runtime checks. To deal with this problem, we have designed and tested two static analyses - symbolic region and range analysis - which we combine to remove the majority of these guards. In addition to the analyses themselves, we bring two other contributions. First, we describe live range splitting strategies that improve the efficiency and the precision of our analyses. Secondly, we show how to deal with integer overflows, a phenomenon that can compromise the correctness of static algorithms that validate memory accesses. We validate our claims by incorporating our findings into AddressSanitizer. We generate SPEC CINT 2006 code that is 17% faster and 9% more energy efficient than the code produced originally by this tool. Furthermore, our approach is 50% more effective than Pentagons, a state-of-the-art analysis to sanitize memory accesses.
Henrique Nazaré, Izabela Maffra, Willer Santos, Leonardo B. Oliveira, Laure Gonnord, Fernando Magno Quintão Pereira
OOPSLA5
2014 Abstract acceleration in linear relation analysis
Laure Gonnord, Peter Schrammel
Sci. Comput. Program.1
2011 A Generic Tool for Tracing Executions Back to a DSML's Operational Semantics
Benoît Combemale, Laure Gonnord, Vlad Rusu
ECMFA2
2011 Static analysis of synchronous programs in signal for efficient design of multi-clocked embedded systems
abstract
International audience
Abdoulaye Gamatié, Laure Gonnord
LCTES2
2011 Using Bounded Model Checking to Focus Fixpoint Iterations
David Monniaux, Laure Gonnord
SAS2
2010 Multi-dimensional Rankings, Program Termination, and Complexity Bounds of Flowchart Programs
Christophe Alias, Alain Darte, Paul Feautrier, Laure Gonnord
SAS4
2009 Quantity of resource properties expression and runtime assurance for embedded systems
abstract
Recent work on component-based software design has proved the need of resource-accurate development of embedded software. In the more specific cases of mobile systems, the developer also needs tools to facilitate the adaptation of functionalities to resources (lack of memory or bandwidth, etc.), and also to evaluate the performance w.r.t. the resource issues. As we want to design and develop at the same time the application and its resource controllers, we chose to use Qinna, which was designed to manage resource issues (specification, contractualization, management) during the development process of such an application. We propose a complete formalization of the resource constraints specification, through the use of a variant of the event-based logics, MEDL and PEDL. Qinna then automatically performs the runtime resource assurance. We illustrate this work in a case study.
Laure Gonnord, Jean-Philippe Babau
AICCSA1
2006 Combining Widening and Acceleration in Linear Relation Analysis
Laure Gonnord, Nicolas Halbwachs
SAS1
2006 Some ways to reduce the space dimension in polyhedra computations
Nicolas Halbwachs, David Merchat, Laure Gonnord
Formal Methods Syst. Des.3