Julien Signoles

dblp:26/3282 · DBLP profile ↗
← Back
28ranked-venue papers
1as first author
7since 2021 · last 2026
0000-0001-9266-0820ORCID · verified

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

Software engineering, systems software and programming languages · 22 · 1 first-author · 6 since 2021Theory of computation · 7 · 2 since 2021Artificial intelligence and machine learning · 1Security and privacy · 1
YearPublicationVenuePosition
2026 ATLAS: From Access conTrol Language to ACSL Specifications
abstract
Access control is a classical way to express which users are allowed to do which actions on which objects. Many formalisms study how to model access control policies. However, fewer works target formal verification of an actual implementation with respect to a given policy. This paper presents ATLAS, a new formal specification language for expressing access control policies. This language allows for modeling an access control policy, linking it to a source code, and generating automatically formal annotations in order to verify that a source code correctly implements the modeled policy. This workflow is implemented as a new Frama-C plugin that generates ACSL annotations, which can be proved by deductive verification or checked at runtime.
Julien Signoles, Khaoula Boukir, Amine Nasri
GPCE1
2025 Reusing Caches and Invariants for Efficient and Sound Incremental Static Analysis
Mamy Razafintsialonina, David Bühler, Antoine Miné, Valentin Perrelle, Julien Signoles
ECOOP5
2025 Formal Verification of PKCS#1 Signature Parser Using Frama-C
Martin Hána, Nikolai Kosmatov, Virgile Prevosto, Julien Signoles
iFM4
2024 Sound Runtime Assertion Checking for Memory Properties via Program Transformation
abstract
Runtime Assertion Checking (RAC) for expressive specification languages is a non-trivial verification task that becomes even more complex for memory-related properties of imperative languages with dynamic memory allocation. It is important to ensure the soundness of RAC verdicts, in particular when RAC reports the absence of failures for execution traces. This article presents a formalization of a program transformation technique for RAC of memory properties for a representative language with pointers and memory operations, including dynamic allocation and deallocation. The generated program instrumentation relies on an axiomatized observation memory model, which is essential to record and monitor memory-related properties. We prove the soundness of RAC verdicts with regard to the semantics of this language.
Dara Ly, Nikolai Kosmatov, Frédéric Loulergue, Julien Signoles
Formal Aspects Comput.4
2023 Abstract Interpretation of Recursive Logic Definitions for Efficient Runtime Assertion Checking
Thibaut Benjamin, Julien Signoles
TAP2
2023 Context Specification Language for Formally Verifying Consent Properties on Models and Code
Myriam Clouet, Thibaud Antignac, Mathilde Arnaud, Julien Signoles
TAP4
2021 Runtime Abstract Interpretation for Numerical Accuracy and Robustness
Franck Védrine, Maxime Jacquemin, Nikolai Kosmatov, Julien Signoles
VMCAI4
2020 Efficient Runtime Assertion Checking for Properties over Mathematical Numbers
Nikolai Kosmatov, Fonenantsoa Maurica, Julien Signoles
RV3
2019 A survey of challenges for runtime verification from advanced application domains (beyond software)
abstract
Abstract Runtime verification is an area of formal methods that studies the dynamic analysis of execution traces against formal specifications. Typically, the two main activities in runtime verification efforts are the process of creating monitors from specifications, and the algorithms for the evaluation of traces against the generated monitors. Other activities involve the instrumentation of the system to generate the trace and the communication between the system under analysis and the monitor. Most of the applications in runtime verification have been focused on the dynamic analysis of software, even though there are many more potential applications to other computational devices and target systems. In this paper we present a collection of challenges for runtime verification extracted from concrete application domains, focusing on the difficulties that must be overcome to tackle these specific challenges. The computational models that characterize these domains require to devise new techniques beyond the current state of the art in runtime verification.
César Sánchez 0001, Gerardo Schneider, Wolfgang Ahrendt, Ezio Bartocci, Domenico Bianculli, Christian Colombo 0001, Yliès Falcone, Adrian Francalanza, Srdan Krstic, João Lourenço, Dejan Nickovic, Gordon J. Pace, José Rufino, Julien Signoles, Dmitriy Traytel, Alexander Weiss
Formal Methods Syst. Des.14
2019 Correction to: A survey of challenges for runtime verification from advanced application domains (beyond software)
César Sánchez 0001, Gerardo Schneider, Wolfgang Ahrendt, Ezio Bartocci, Domenico Bianculli, Christian Colombo 0001, Yliès Falcone, Adrian Francalanza, Srdan Krstic, João Lourenço, Dejan Nickovic, Gordon J. Pace, José Rufino, Julien Signoles, Dmitriy Traytel, Alexander Weiss
Formal Methods Syst. Des.14
2019 First international Competition on Runtime Verification: rules, benchmarks, tools, and final results of CRV 2014
abstract
The first international Competition on Runtime Verification (CRV) was held in September 2014, in Toronto, Canada, as a satellite event of the 14th international conference on Runtime Verification (RV’14). The event was organized in three tracks: (1) offline monitoring, (2) online monitoring of C programs, and (3) online monitoring of Java programs. In this paper, we report on the phases and rules, a description of the participating teams and their submitted benchmark, the (full) results, as well as the lessons learned from the competition.
Ezio Bartocci, Yliès Falcone, Borzoo Bonakdarpour, Christian Colombo 0001, Normann Decker, Klaus Havelund, Yogi Joshi, Felix Klaedtke, Reed Milewicz, Giles Reger, Grigore Rosu, Julien Signoles, Daniel Thoma, Eugen Zalinescu
Int. J. Softw. Tools Technol. Transf.12
2018 Runtime Assertion Checking and Static Verification: Collaborative Partners
Fonenantsoa Maurica, David R. Cok, Julien Signoles
ISoLA (2)3
2017 Shadow state encoding for efficient monitoring of block-level properties
abstract
Memory shadowing associates addresses from an application's memory to values stored in a disjoint memory space called shadow memory. At runtime shadow values store metadata about application memory locations they are mapped to. Shadow state encodings -- the structure of shadow values and their interpretation -- vary across different tools. Encodings used by the state-of-the-art monitoring tools have been proven useful for tracking memory at a byte-level, but cannot address properties related to memory block boundaries. Tracking block boundaries is however crucial for spatial memory safety analysis, where a spatial violation such as out-of-bounds access, may dereference an allocated location belonging to an adjacent block or a different struct member.
Kostyantyn Vorobyov, Julien Signoles, Nikolai Kosmatov
ISMM2
2017 Context Generation from Formal Specifications for C Analysis Tools
Michele Alberti, Julien Signoles
LOPSTR2
2017 Hypercollecting semantics and its application to static analysis of information flow
abstract
We show how static analysis for secure information flow can be expressed and proved correct entirely within the framework of abstract interpretation. The key idea is to define a Galois connection that directly approximates the hyperproperty of interest. To enable use of such Galois connections, we introduce a fixpoint characterisation of hypercollecting semantics, i.e. a "set of sets" transformer. This makes it possible to systematically derive static analyses for hyperproperties entirely within the calculational framework of abstract interpretation. We evaluate this technique by deriving example static analyses. For qualitative information flow, we derive a dependence analysis similar to the logic of Amtoft and Banerjee (SAS '04) and the type system of Hunt and Sands (POPL '06). For quantitative information flow, we derive a novel cardinality analysis that bounds the leakage conveyed by a program instead of simply deciding whether it exists. This encompasses problems that are hypersafety but not k-safety. We put the framework to use and introduce variations that achieve precision rivalling the most recent and precise static analyses for information flow.
Mounir Assaf, David A. Naumann, Julien Signoles, Eric Totel, Frédéric Tronel
POPL3
2017 Runtime Detection of Temporal Memory Errors
Kostyantyn Vorobyov, Nikolai Kosmatov, Julien Signoles, Arvid Jakobsson
RV3
2016 Static versus Dynamic Verification in Why3, Frama-C and SPARK 2014
Nikolai Kosmatov, Claude Marché, Yannick Moy, Julien Signoles
ISoLA (1)4
2016 Frama-C, A Collaborative Framework for C Code Verification: Tutorial Synopsis
Nikolai Kosmatov, Julien Signoles
RV2
2016 Fast as a shadow, expressive as a tree: Optimized memory monitoring for C
Arvid Jakobsson, Nikolai Kosmatov, Julien Signoles
Sci. Comput. Program.3
2015 Gamifying Program Analysis
Daniel S. Fava, Julien Signoles, Matthieu Lemerre, Martin Schäf, Ashish Tiwari 0001
LPAR2
2015 Frama-C: A software analysis perspective
abstract
Abstract Frama-C is a source code analysis platform that aims at conducting verification of industrial-size C programs. It provides its users with a collection of plug-ins that perform static analysis, deductive verification, and testing, for safety- and security-critical software. Collaborative verification across cooperating plug-ins is enabled by their integration on top of a shared kernel and datastructures, and their compliance to a common specification language. This foundational article presents a consolidated view of the platform, its main and composite analyses, and some of its industrial achievements.
Florent Kirchner, Nikolai Kosmatov, Virgile Prevosto, Julien Signoles, Boris Yakobowski
Formal Aspects Comput.4
2014 Instrumentation of Annotated C Programs for Test Generation
abstract
Software verification and validation often rely on formal specifications that encode desired program properties. Recent research proposed a combined verification approach in which a program can be incrementally verified using alternatively deductive verification and testing. Both techniques should use the same specification expressed in a unique specification language. This paper addresses this problem within the Frama-C framework for analysis of C programs, that offers ACSL as a common specification language. We provide a formal description of an automatic translation of ACSL annotations into C code that can be used by a test generation tool either to trigger and detect specification failures, or to gain confidence, or, under some assumptions, even to confirm that the code is in conformity with respect to the annotations. We implement the proposed specification translation in a combined verification tool Study. Our initial experiments suggest that the proposed support for a common specification language can be very helpful for combined static-dynamic analyses.
Guillaume Petiot, Bernard Botella, Jacques Julliand, Nikolai Kosmatov, Julien Signoles
SCAM5
2013 An Optimized Memory Monitoring for Runtime Assertion Checking of C Programs
Nikolai Kosmatov, Guillaume Petiot, Julien Signoles
RV3
2013 A Lesson on Runtime Assertion Checking with Frama-C
Nikolai Kosmatov, Julien Signoles
RV2
2013 Program Transformation for Non-interference Verification on Programs with Pointers
Mounir Assaf, Julien Signoles, Frédéric Tronel, Eric Totel
SEC2
2012 Combining Analyses for C Program Verification
Loïc Correnson, Julien Signoles
FMICS2
2012 Frama-C - A Software Analysis Perspective
Pascal Cuoq, Florent Kirchner, Nikolai Kosmatov, Virgile Prevosto, Julien Signoles, Boris Yakobowski
SEFM5
2009 Experience report: OCaml for an industrial-strength static analysis framework
abstract
This experience report describes the choice of OCaml as the implementation language for Frama-C, a framework for the static analysis of C programs. OCaml became the implementation language for Frama-C because it is expressive. Most of the reasons listed in the remaining of this article are secondary reasons, features which are not specific to OCaml (modularity, availability of a C parser, control over the use of resources...) but could have prevented the use of OCaml for this project if they had been missing.
Pascal Cuoq, Julien Signoles, Patrick Baudin, Richard Bonichon, Géraud Canet, Loïc Correnson, Benjamin Monate, Virgile Prevosto, Armand Puccetti
ICFP2