Ludovic Henrio

dblp:15/145 · DBLP profile ↗
← Back
44ranked-venue papers
13as first author
12since 2021 · last 2026
0000-0001-7137-3523ORCID · verified

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

Software engineering, systems software and programming languages · 25 · 7 first-author · 10 since 2021Systems, architecture and hardware · 9 · 4 since 2021Theory of computation · 7 · 4 first-author · 2 since 2021Computer networks · 2 · 1 first-authorSecurity and privacy · 1Applied, interdisciplinary, general and emerging computing · 1
YearPublicationVenuePosition
2026 Layers of Confluence for Actors
abstract
This paper introduces a novel proof technique to show that parallel or distributed programs exhibit confluent behaviour, even when the execution of these programs is inherently non-deterministic. The proposed method allows us to prove the confluence of programs for which standard properties such as strong confluence or commutativity of operations do not hold. Our technique builds on a method to prove the confluence of rewrite systems by de Bruijn, which we first adapt and formalise in Rocq. This method can be seen as a specialised induction principle for proving confluence. The paper further considers how this induction principle can be used in the context of programming languages. We show how the proof method can be instantiated to establish confluence conditions for programs in a small Actor-like programming language and demonstrate the application of the method to prove the confluence of a class of programs that cannot be proven to have deterministic behaviour by standard techniques.
Ludovic Henrio, Einar Broch Johnsen, Åsmund Aqissiaq Arild Kløvstad, Violet Ka I Pun, Yannick Zakowski
CPP1
2026 Tail Modulo Async-Await
abstract
This article extends tail-call optimisation by applying it to asynchronous calls. We first introduce TMA, a novel code transformation for asynchronous tail recursive functions that prevents the creation of unnecessary tasks. We then show how to combine TMA with the existing TMC optimisation; we obtain an optimisation able to turn a recursive function with multiple tail calls under constructors into a parallel version of the function, also optimised in space. We formalise both optimisations over representative calculi, and prove them correct through backward simulations. Finally, we provide a proof-of-concept implementation as an OCaml syntax extension and evaluate it experimentally, showing our approach optimises both memory and execution time
Emma Nardino, Ludovic Henrio, Gabriel Radanne, Yannick Zakowski
Proc. ACM Program. Lang.2
2025 Monadic Interpreters for Concurrent Memory Models: Executable Semantics of a Concurrent Subset of LLVM IR
abstract
Monadic interpreters have gained attention as a powerful tool for modeling and reasoning about first order languages. In particular in the Coq ecosystem, the Choice Tree (CTree) library provides generic tools to craft such interpreters in presence of divergence, stateful effects, failure, and non-determinism. This monadic approach allows the definition of semantics for programming languages that are modular in its effects, compositional w.r.t. its syntax, and executable. This paper demonstrates the use of CTrees to formalize a semantics for concurrency and weak memory models. We instantiate the approach over a minimal concurrent subset of LLVM IR. Our semantics is built in successive stages, interpreting each aspect of the semantics separately. In particular, a stage encodes multi-threading as an interleaving semantics, and another implements a weak memory model that supports various LLVM memory orderings. Furthermore, the modularity of the approach makes it possible to plug a different source language or memory model by changing a single interpretation phase. By leveraging the notions of (bi)similarity on CTrees, we establish the equational theory of our constructions, show how to transport equivalences through our layered construction, and prove simulation results between memory models. Finally, our model is executable, hence the semantics can be tested by extraction to OCaml.
Nicolas Chappe, Ludovic Henrio, Yannick Zakowski
CPP2
2025 Choice trees: Representing and reasoning about nondeterministic, recursive, and impure programs in Rocq
abstract
Abstract This paper introduces Choice Trees (CTrees), a monad for modeling nondeterministic, recursive, and impure programs in Rocq . Inspired by Xia et al .’s ((2019) Proc. ACM Program. Lang. 4 (POPL)) ITrees, this novel data structure embeds computations into coinductive trees with three kinds of nodes: external events, internal steps, and delayed branching. This structure allows us to provide shallow embedding of denotational models with nondeterministic choice in the style of ccs , while recovering an inductive LTS view of the computation. CTrees leverage a vast collection of bisimulation and refinement tools well-studied on LTSs, with respect to which we establish a rich equational theory. We connect CTrees to the ITrees infrastructure by showing how a monad morphism embedding the former into the latter permits using CTrees to implement nondeterministic effects. We demonstrate the utility of CTrees by using them to model concurrency semantics in two case studies: ccs and cooperative multithreading.
Nicolas Chappe, Paul He 0002, Ludovic Henrio, Eleftherios Ioannidis, Yannick Zakowski, Steve Zdancewic
J. Funct. Program.3
2025 A Survey on Transistor-Level Electrical Rule Checking of Integrated Circuits
abstract
Hardware verification is crucial to ensure the quality of Integrated Circuits, and prevent costly bugs down the manufacturing flow. Electrical Rule Checking (ERC) is a verification step used to assert that a circuit complies with some electrical rules, from the absence of short-circuits to dedicated constructor rules. In this survey, we provide a global overview of existing ERC techniques at transistor-level, where voltage values are explicit. We propose a new classification method to compare the existing approaches based on their semantic modeling of circuits. This survey precisely describes transistor-level ERC research challenges and existing solutions. We believe it will help structure this research domain by positioning existing approaches with respect to each other. Obviously, a survey should also facilitate technological transfer and this one should help CAD vendors identify the most relevant approaches to integrate in their tools. Finally, we highlight several promising directions to improve the existing solutions.
Bruno Ferres, Oussama Oulkaid, Matthieu Moy, Gabriel Radanne, Ludovic Henrio, Pascal Raymond, Mehdi Khosravian Ghadikolaei
ACM Trans. Design Autom. Electr. Syst.5
2024 A Transistor Level Relational Semantics for Electrical Rule Checking by SMT Solving
abstract
We present a novel technique for Electrical Rule Checking (ERC) based on formal methods. We define a relational semantics of Integrated Circuits (IC) as a means to model circuits' behavior at transistor-level. We use Z3, a Satisfiability Modulo Theory (SMT) solver, to verify electrical properties on circuits – thanks to the defined semantics. We demonstrate the usability of the approach to detect current leakage due to missing level-shifter on large industrial circuits, and we conduct experiments to study the scalability of the approach.
Oussama Oulkaid, Bruno Ferres, Matthieu Moy, Pascal Raymond, Mehdi Khosravian Ghadikolaei, Ludovic Henrio, Gabriel Radanne
DATE6
2024 Locally Abstract, Globally Concrete Semantics of Concurrent Programming Languages
abstract
Formal, mathematically rigorous programming language semantics are the essential prerequisite for the design of logics and calculi that permit automated reasoning about concurrent programs. We propose a novel modular semantics designed to align smoothly with program logics used in deductive verification and formal specification of concurrent programs. Our semantics separates local evaluation of expressions and statements performed in an abstract, symbolic environment from their composition into global computations, at which point they are concretised. This makes incremental addition of new language concepts possible, without the need to revise the framework. The basis is a generalisation of the notion of a program trace as a sequence of evolving states that we enrich with event descriptors and trailing continuation markers. This allows to postpone scheduling constraints from the level of local evaluation to the global composition stage, where well-formedness predicates over the event structure declaratively characterise a wide range of concurrency models. We also illustrate how a sound program logic and calculus can be defined for this semantics.
Crystal Chang Din, Reiner Hähnle, Ludovic Henrio, Einar Broch Johnsen, Violet Ka I Pun, Silvia Lizeth Tapia Tarifa
ACM Trans. Program. Lang. Syst.3
2023 Electrical Rule Checking of Integrated Circuits using Satisfiability Modulo Theory
abstract
We consider the verification of electrical properties of circuits to identify potential violations of electrical design rules, also called Electrical Rule Checking (ERC). We present a general approach based on Satisfiability Modulo Theory (SMT) to verify that these errors cannot occur in a given circuit. We claim that our approach is scalable and more precise than existing analyses, like voltage propagation. We applied these techniques to a specific type of errors, the missing level shifters. On an industrial case-study, our technique is able to flag 31 % of the warnings raised by the voltage propagation analysis as being false alarms.
Bruno Ferres, Oussama Oulkaid, Ludovic Henrio, Mehdi Khosravian Ghadikolaei, Matthieu Moy, Gabriel Radanne, Pascal Raymond
DATE3
2023 Refinements for Open Automata
Rabéa Ameur-Boulifa, Quentin Corradi, Ludovic Henrio, Eric Madelaine
SEFM3
2023 Compositional equivalences based on open pNets
Rabéa Ameur-Boulifa, Ludovic Henrio, Eric Madelaine
J. Log. Algebraic Methods Program.2
2023 Choice Trees: Representing Nondeterministic, Recursive, and Impure Programs in Coq
abstract
This paper introduces ctrees, a monad for modeling nondeterministic, recursive, and impure programs in Coq. Inspired by Xia et al.'s itrees, this novel data structure embeds computations into coinductive trees with three kind of nodes: external events, and two variants of nondeterministic branching. This apparent redundancy allows us to provide shallow embedding of denotational models with internal choice in the style of CCS, while recovering an inductive LTS view of the computation. ctrees inherit a vast collection of bisimulation and refinement tools, with respect to which we establish a rich equational theory. We connect ctrees to the itree infrastructure by showing how a monad morphism embedding the former into the latter permits to use ctrees to implement nondeterministic effects. We demonstrate the utility of ctrees by using them to model concurrency semantics in two case studies: CCS and cooperative multithreading.
Nicolas Chappe, Paul He 0002, Ludovic Henrio, Yannick Zakowski, Steve Zdancewic
Proc. ACM Program. Lang.3
2021 S4BXI: the MPI-ready Portals 4 Simulator
abstract
We present a simulator for High Performance Computing (HPC) interconnection networks. It models Portals 4, a standard low-level API for communication, and it allows running unmodified applications that use higher-level network APIs such as the Message Passing Interface (MPI). It is based on SimGrid, a framework used to build single-threaded simulators based on a cooperative actor model. Unlike existing tools like SMPI, we rely on an actual MPI implementation, hence our simulation takes into account MPI’s implementation details in the performance. This paper also presents a case study using the BullSequana eXascale Interconnect (BXI) made by Atos, which highlights how such a simulator can help design space exploration (DSE) for new interconnects.
Julien Emmanuel, Matthieu Moy, Ludovic Henrio, Gregoire Pichon
MASCOTS3
2020 Active Objects with Deterministic Behaviour
Ludovic Henrio, Einar Broch Johnsen, Violet Ka I Pun
IFM1
2020 Leveraging access mode declarations in a model for memory consistency in heterogeneous systems
Ludovic Henrio, Christoph W. Kessler, Lu Li 0001
J. Log. Algebraic Methods Program.1
2019 Verification of Concurrent Design Patterns with Data
Simon Bliudze, Ludovic Henrio, Eric Madelaine
COORDINATION2
2019 Godot: All the Benefits of Implicit and Explicit Futures
abstract
Concurrent programs often make use of futures, handles to the results of asynchronous operations. Futures provide means to communicate not yet computed results, and simplify the implementation of operations that synchronise on the result of such asynchronous operations. Futures can be characterised as implicit or explicit, depending on the typing discipline used to type them. Current future implementations suffer from "future proliferation", either at the type-level or at run-time. The former adds future type wrappers, which hinders subtype polymorphism and exposes the client to the internal asynchronous communication architecture. The latter increases latency, by traversing nested future structures at run-time. Many languages suffer both kinds. Previous work offer partial solutions to the future proliferation problems; in this paper we show how these solutions can be integrated in an elegant and coherent way, which is more expressive than either system in isolation. We describe our proposal formally, and state and prove its key properties, in two related calculi, based on the two possible families of future constructs (data-flow futures and control-flow futures). The former relies on static type information to avoid unwanted future creation, and the latter uses an algebraic data type with dynamic checks. We also discuss how to implement our new system efficiently.
Kiko Fernandez-Reyes, Dave Clarke 0001, Ludovic Henrio, Einar Broch Johnsen, Tobias Wrigstad
ECOOP3
2019 On Reachability in Parameterized Phaser Programs
abstract
We address the problem of statically checking safety properties (such as assertions or deadlocks) for parameterized phaser programs . Phasers embody a non-trivial and modern synchronization construct used to orchestrate executions of parallel tasks. This generic construct supports dynamic parallelism with runtime registrations and deregistrations of spawned tasks. It generalizes many synchronization patterns such as collective and point-to-point schemes. For instance, phasers can enforce barriers or producer-consumer synchronization patterns among all or subsets of the running tasks. We consider in this work programs that may generate arbitrarily many tasks and phasers. We propose an exact procedure that is guaranteed to terminate even in the presence of unbounded phases and arbitrarily many spawned tasks. In addition, we prove undecidability results for several problems on which our procedure cannot be guaranteed to terminate.
Zeinab Ganjei, Ahmed Rezine, Ludovic Henrio, Petru Eles, Zebo Peng
TACAS (1)3
2019 Preface for the special issue on Interaction and Concurrency Experience 2017
Massimo Bartoletti, Laura Bocchi, Ludovic Henrio, Sophia Knight
J. Log. Algebraic Methods Program.3
2018 Active Objects for Coordinating BSP Computations (Short Paper)
Gaétan Hains, Ludovic Henrio, Pierre Leca, Wijnand Suijlen
COORDINATION2
2017 Trustable virtual machine scheduling in a cloud
abstract
In an Infrastructure As A Service (IaaS) cloud, the scheduler deploys VMs to servers according to service level objectives (SLOs). Clients and service providers must both trust the infrastructure. In particular they must be sure that the VM scheduler takes decisions that are consistent with its advertised behaviour. The difficulties to master every theoretical and practical aspects of a VM scheduler implementation leads however to faulty behaviours that break SLOs and reduce the provider revenues.
Fabien Hermenier, Ludovic Henrio
SoCC2
2017 Analysis of Synchronisations in Stateful Active Objects
Ludovic Henrio, Cosimo Laneve, Vincenzo Mastandrea
IFM1
2017 Multiactive objects and their applications
abstract
In order to tackle the development of concurrent and distributed systems, the active object programming model provides a high-level abstraction to program concurrent behaviours. There exists already a variety of active object frameworks targeted at a large range of application domains: modelling, verification, efficient execution. However, among these frameworks, very few consider a multi-threaded execution of active objects. Introducing controlled parallelism within active objects enables overcoming some of their limitations. In this paper, we present a complete framework around the multi-active object programming model. We present it through ProActive, the Java library that offers multi-active objects, and through MultiASP, the programming language that allows the formalisation of our developments. We then show how to compile an active object language with cooperative multi-threading into multi-active objects. This paper also presents different use cases and the development support to illustrate the practical usability of our language. Formalisation of our work provides the programmer with guarantees on the behaviour of the multi-active object programming model and of the compiler.
Ludovic Henrio, Justine Rochas
Log. Methods Comput. Sci.1
2016 From Modelling to Systematic Deployment of Distributed Active Objects
Ludovic Henrio, Justine Rochas
COORDINATION1
2016 Integrated Environment for Verifying and Running Distributed Components
Ludovic Henrio, Oleksandra Kulankhina, Eric Madelaine
FASE1
2016 A Theory for the Composition of Concurrent Processes
Ludovic Henrio, Eric Madelaine, Min Zhang 0002
FORTE1
2016 Actors may synchronize, safely!
abstract
We study deadlock detection in an actor model with wait-by-necessity synchronizations, a lightweight technique that synchronizes invocations when the corresponding values are strictly needed. This approach relies on the use of futures that are not given an explicit "Future" type. The approach we adopt explicits the synchronization on futures, and on the availability of some values, instead of the synchronization on the termination of a process existing in previous works. This way we are able to analyse the data-flow synchronization inherent to languages that feature wait-by-necessity. We provide a type-system and a solver inferring the type of a program so that deadlocks can be identified statically. As a consequence we can automatically verify the absence of deadlocks in actor programs with wait-by-necessity synchronizations.
Elena Giachino, Ludovic Henrio, Cosimo Laneve, Vincenzo Mastandrea
PPDP2
2015 pNets: An Expressive Model for Parameterised Networks of Processes
abstract
This article studies Parameterised Networks of Automata (pNets) from a theoretical perspective. We illustrate the expressiveness of pNets by showing how to express a wide range of classical constructs of (value-passing) process calculi, but also how we can easily encode complex interaction patterns used in modern distributed systems. Our framework can model full systems, using (closed) hierarchies of pNets, we can also build (open) pNet systems expressing composition operators. Concerning more fundamental aspects, we define a strong bisimulation theory specifically for the pNet model, prove its properties, and illustrate it on some examples. One of the original aspects of the approach is to relate the compositional nature of pNets with the notion of bisimulation, this is exemplified by studying the properties of a flattening operator for pNets.
Ludovic Henrio, Eric Madelaine, Min Madelaine
PDP1
2015 Programming distributed and adaptable autonomous components - the GCM/ProActive framework
abstract
Component-oriented software has become a useful tool to build larger and more complex systems by describing the application in terms of encapsulated, loosely coupled entities called components. At the same time, asynchronous programming patterns allow for the development of efficient distributed applications. While several component models and frameworks have been proposed, most of them tightly integrate the component model with the middleware they run upon. This intertwining is generally implicit and not discussed, leading to entangled, hard to maintain code. This article describes our efforts in the development of the GCM/ProActive framework for providing distributed and adaptable autonomous components. GCM/ProActive integrates a component model designed for execution on large-scale environments, with a programming model based on active objects allowing a high degree of distribution and concurrency. This new integrated model provides a more powerful development, composition, and execution environment than other distributed component frameworks. We illustrate that GCM/ProActive is particularly adapted to the programming of autonomic component systems, and to the integration into a service-oriented environment. Copyright © 2014 John Wiley & Sons, Ltd.
Françoise Baude, Ludovic Henrio, Cristian Ruz
Softw. Pract. Exp.2
2013 Multi-threaded Active Objects
Ludovic Henrio, Fabrice Huet, Zsolt István
COORDINATION1
2013 A Mechanized Model for CAN Protocols
Francesco Bongiovanni, Ludovic Henrio
FASE2
2013 An Optimal Broadcast Algorithm for Content-Addressable Networks
Ludovic Henrio, Fabrice Huet, Justine Rochas
OPODIS1
2012 ASPfun : A typed functional active object calculus
Ludovic Henrio, Florian Kammüller, Bianca Lutz
Sci. Comput. Program.1
2011 Adapting Active Objects to Multicore Architectures
abstract
There are several programming paradigms that help programmers write efficient and verifiable code for distributed environments. These solutions, however, often lack proper support for local parallelism. In this article we try to improve existing solutions for providing a distributed, highly parallel framework that is easy to program. We propose an extension to the active object programming model which optimizes the local performance of applications by harnessing the full computing power of multi-core CPUs. The need for explicit locking mechanisms is reduced by the addition of meta-information to the methods in the source code. This paper describes this language-independent meta-information, and the way we intend to use it for parallelizing execution inside an active object.
Ludovic Henrio, Fabrice Huet, Zsolt István, Gheorghe Sebestyen
ISPDC1
2010 Exceptions for Algorithmic Skeletons
Mario Leyton, Ludovic Henrio, José M. Piquer
Euro-Par (2)2
2009 Asynchronous sequential processes
Denis Caromel, Ludovic Henrio, Bernard P. Serpette
Inf. Comput.2
2008 Type Safe Algorithmic Skeletons
abstract
This paper addresses the issue of type safe algorithmic skeletons. From a theoretical perspective we contribute by: formally specifying a type system for algorithmic skeletons, and proving that the type system guarantees type safety. From an implementation point of view, we show how it is possible to enforce the type system on an Java based algorithmic skeleton library. The enforcement takes place at the composition of the skeleton program, by typing each skeleton with respect to its construction parameters: sequential functions, and other skeletons. As a result, hierarchical skeleton nesting can be performed safely, since type errors can be detected by the skeleton type system.
Denis Caromel, Ludovic Henrio, Mario Leyton
PDP2
2007 Collective Interfaces for Distributed Components
abstract
We propose to address collective communications in distributed components through collective interfaces. Collective interfaces handle data distribution, parallelism and synchronization, and they expose collective behaviors in the definition of components. We show, as an illustration, that collective interfaces allow the encoding of SPMD programming in a better structured and less error prone way. We verify the scalability and performance of collective interfaces in an experiment on up to 100 machines.
Françoise Baude, Denis Caromel, Ludovic Henrio, Matthieu Morel
CCGRID3
2007 Garbage Collecting the Grid: A Complete DGC for Activities
Denis Caromel, Guillaume Chazarain, Ludovic Henrio
Middleware3
2007 Promised messages: recovering from inconsistent global states
abstract
No abstract available.
Françoise Baude, Denis Caromel, Christian Delbé, Ludovic Henrio
PPoPP4
2006 A Fault Tolerant and Multi-Paradigm Grid Architecture for Time Constrained Problems. Application to Option Pricing in Finance
abstract
This paper introduces a Grid software architecture offering fault tolerance, dynamic and aggressive load balancing and two complementary parallel programming paradigms. Experiments with financial applications on a real multi-site Grid assess this solution. This architecture has been designed to run industrial and financial applications, that are frequently time constrained and CPU consuming, feature both tightly and loosely coupled parallelism requiring generic programming paradigm, and adopt client-server business architecture.
Sebastien Bezzine, Virginie Galtier, Stéphane Vialle, Françoise Baude, Mireille Bossy, Viet Dung Doan, Ludovic Henrio
e-Science7
2005 A Hybrid Message Logging-CIC Protocol for Constrained Checkpointability
Françoise Baude, Denis Caromel, Christian Delbé, Ludovic Henrio
Euro-Par4
2004 Asynchronous and deterministic objects
abstract
This paper aims at providing confluence and determinism properties in concurrent processes, more specifically within the paradigm of object-oriented systems. Such results should allow one to program parallel and distributed applications that behave in a deterministic manner, even if they are distributed over local or wide area networks. For that purpose, an object calculus is proposed. Its key characteristics are asynchronous communications with futures, and sequential execution within each process.While most of previous works exhibit confluence properties only on specific programs -- or patterns of programs, a general condition for confluence is presented here. It is further put in practice to show the deterministic behavior of a typical example.
Denis Caromel, Ludovic Henrio, Bernard P. Serpette
POPL2
2001 An integrated development environment for Java Card
Isabelle Attali, Denis Caromel, Carine Courbis, Ludovic Henrio, Henrik Nilsson
Comput. Networks4
2000 Smart Tools for Java Cards
Isabelle Attali, Denis Caromel, Carine Courbis, Ludovic Henrio, Henrik Nilsson
CARDIS4