EDBT 2026 Demo / reviewers in the wild / expert
Sandrine Blazy
dblp:b/SandrineBlazy
· DBLP profile ↗
48ranked-venue papers
27as first author
11since 2021 · last 2026
0000-0002-0189-0223ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 33 · 19 first-author · 10 since 2021Theory of computation · 12 · 7 first-author · 3 since 2021Artificial intelligence and machine learning · 6 · 3 first-authorSecurity and privacy · 5 · 3 first-author · 1 since 2021Databases, data management, data science and information retrieval · 1 · 1 first-author
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Towards Verifiable System Code using a DSL Compiled to Efficient and Readable C CodeabstractCritical embedded systems deserve the highest level of assurance to guarantee that their implementation satisfies their specification. Verification techniques such as proof by deduction operate at source level but the verification effort often requires to design higher-level abstractions that facilitate the reasoning. However, this approach comes at the cost of assuming the correctness of the abstraction with respect to the source code. Clément Chavanon, Henrik A. Karlsson, Frédéric Besson, Sandrine Blazy, Roberto Guanciale |
LCTES | 4 |
| 2025 | Formal Verification of WTO-based Dataflow SolversabstractAbstract In this paper, we consider specific dataflow solvers, inspired by the work of Bourdoncle [5], in which an iteration order is pre-computed, based on the structure of the control-flow graph of programs. Our work aims at a clearer formulation and a better understanding of the folklore algorithms proposed three decades ago. We present a formalization of the dataflow solvers. Central to the proof of correctness is the general notion of a Weak Topological Ordering (WTO). Our correctness proofs are valid for any such ordering. The first solver implements an iterative strategy over the ordering, the second solver implements a recursive strategy. Our formalization is done within the Coq proof assistant and our solvers are extractable to OCaml code. Our formalization is fully compatible with the interface of dataflow solvers of the verified, optimizing C CompCert compiler. We conduct practical experiments on the wide range of forward and backward analyses of CompCert, demonstrating the practicality of our solvers in terms of efficiency and precision. Roméo La Spina, Delphine Demange, Sandrine Blazy |
ESOP (2) | 3 |
| 2025 | Formal Verification of WTO-based Dataflow Solvers - Artifact Experience ReportabstractAbstract In this report, we provide our full set of results for the experimental evaluation of our formally verified, WTO-based dataflow solvers [2]. We also detail useful information regarding our artifact [3] and evaluation setup. In particular, we validate experimentally that our implementation of Bourdoncle’s iteration strategies have acceptable performances in practice, when applied to the dataflow analyses used in the CompCert C verified compiler. Our experiments also help better understanding the differences between the solvers, their strengths and their weaknesses. Roméo La Spina, Delphine Demange, Sandrine Blazy |
ESOP (2) | 3 |
| 2025 | Abstract machines and small-step semantics: a winning ticket for proof automation?abstractVerifying the correctness of a program using an interactive proof assistant involves first defining in the proof assistant the semantics of the involved programming language. Once mechanized, the semantics serves as the basis for the whole proof development, as it is referred to by all subsequent theorems. Traditionally, semantic judgments are mechanized using recursive inductive predicates, matching the pen-and-paper inference rules of operational semantics. However, the shape of these judgments may make proof engineering and maintenance tedious, requiring complex proof automation frameworks. This problem is especially acute when iterating during the language design period. Alain Delaët, Sandrine Blazy, Denis Merigoux |
PPDP | 2 |
| 2025 | A Mechanized Semantics for Dataflow CircuitsabstractThis paper proposes a mechanized formal semantics for dataflow circuits: rather than following a predetermined, static schedule, the execution of the circuit components is constrained solely by the availability of their input data. We model circuit components as abstract computing units, asynchronously connected with each other through unidirectional, unbounded FIFO. In contrast to Kahn’s classic, denotational semantic framework, our semantics is operational. It intends to reflect Dennis’ dataflow paradigm with firing, while still formalizing the observable behaviors of circuits as channels histories. The components we handle are either stateless or stateful, and may be non-deterministic. We formalize sufficient conditions to achieve the determinacy of circuits executions: all possible schedules of such circuits lead to a unique observable behavior. We provide two equivalent views for circuits. The first one is a direct and natural representation as graphs of components. The second is a core, structured term calculus, which enables constructing and reasoning about circuits in a inductive way. We prove that both representations are semantically equivalent. We conduct our formalization within the Coq proof assistant. We experimentally validate its relevance by applying our general semantic framework to dataflow circuits generated with Dynamatic, a recent HLS tool exploiting dataflow circuits to generate dynamically scheduled, elastic circuits. Tony Law, Delphine Demange, Sandrine Blazy |
Proc. ACM Program. Lang. | 3 |
| 2024 | From Mechanized Semantics to Verified Compilation: the Clight Semantics of CompCertabstractAbstract CompCert is a formally verified compiler for C that is specified, programmed and proved correct with the Coq proof assistant. CompCert was used in industry to compile critical embedded software. Its correctness proof states that the compiler does not introduce bugs. This semantic preservation property involves the formal semantics of the source and target languages of the compiler. Reasoning on C semantics to prove compiler correctness is challenging, as C is a real language that was not designed with semantics in mind. This paper presents the operational style that was designed for the C semantics of CompCert in order to facilitate the mechanized reasoning on terminating and diverging programs, and details the semantics of the Clight source language of CompCert. Sandrine Blazy |
FASE | 1 |
| 2023 | CompCert: A Journey through the Landscape of Mechanized Semantics for Verified Compilation (Keynote)abstractA formally verified compiler ensures that compilation does not introduce any bugs in programs. In the CompCert C compiler, this correctness property requires reasoning about realistic languages by using a semantic framework. This invited talk explains how this framework has been effectively used to turn CompCert from a prototype in a lab into a real-world compiler. Sandrine Blazy |
CPP | 1 |
| 2023 | Mechanised Semantics for Gated Static Single AssignmentabstractThe Gated Static Single Assignment (GSA) form was proposed by Ottenstein et al. in 1990, as an intermediate representation for implementing advanced static analyses and optimisation passes in compilers. Compared to SSA, GSA records additional data dependencies and provides more context, making optimisations more effective and allowing one to reason about programs as data-flow graphs. Yann Herklotz, Delphine Demange, Sandrine Blazy |
CPP | 3 |
| 2023 | Formally Verified Native Code Generation in an Effectful JIT: Turning the CompCert Backend into a Formally Verified JIT CompilerabstractModern Just-in-Time compilers (or JITs) typically interleave several mechanisms to execute a program. For faster startup times and to observe the initial behavior of an execution, interpretation can be initially used. But after a while, JITs dynamically produce native code for parts of the program they execute often. Although some time is spent compiling dynamically, this mechanism makes for much faster times for the remaining of the program execution. Such compilers are complex pieces of software with various components, and greatly rely on a precise interplay between the different languages being executed, including on-stack-replacement. Traditional static compilers like CompCert have been mechanized in proof assistants, but JITs have been scarcely formalized so far, partly due to their impure nature and their numerous components. This work presents a model JIT with dynamic generation of native code, implemented and formally verified in Coq. Although some parts of a JIT cannot be written in Coq, we propose a proof methodology to delimit, specify and reason on the impure effects of a JIT. We argue that the daunting task of formally verifying a complete JIT should draw on existing proofs of native code generation. To this end, our work successfully reuses CompCert and its correctness proofs during dynamic compilation. Finally, our prototype can be extracted and executed. Aurèle Barrière, Sandrine Blazy, David Pichardie |
Proc. ACM Program. Lang. | 2 |
| 2021 | Secure Compilation of Constant-Resource ProgramsabstractObservational non-interference (ONI) is a generic information-flow policy for side-channel leakage. Informally, a program is ONI-secure if observing program leakage during execution does not reveal any information about secrets. Formally, ONI is parametrized by a leakage functionl, and different instances of ONI can be recovered through different instantiations ofl. One popular instance of ONI is the cryptographic constant-time (CCT) policy, which is widely used in cryptographic libraries to protect against timing and cache attacks. Informally, a program is CCT-secure if it does not branch on secrets and does not perform secret-dependent memory accesses. Another instance of ONI is the constant-resource (CR) policy, a relaxation of the CCT policy which is used in Amazon's s2n implementation of TLS and in several other security applications. Informally, a program is CR-secure if its cost (modelled by a tick operator over an arbitrary semi-group) does not depend on secrets.In this paper, we consider the problem of preserving ONI by compilation. Prior work on the preservation of the CCT policy develops proof techniques for showing that main compiler optimisations preserve the CCT policy. However, these proof techniques critically rely on the fact that the semi-group used for modelling leakage satisfies the property:l1+l1'=l2+l2'⇒l1=l2∧l1'=l2'Unfortunately, this non-cancelling property fails for the CR policy, because its underlying semi-group is (\mathbbN, +) and it is currently not known how to extend existing techniques to policies that do not satisfy non-cancellation.We propose a methodology for proving the preservation of the CR policy during a program transformation. We present an implementation of some elementary compiler passes, and apply the methodology to prove the preservation of these passes. Our results have been mechanically verified using the Coq proof assistant. Gilles Barthe, Sandrine Blazy, Rémi Hutin, David Pichardie |
CSF | 2 |
| 2021 | Formally verified speculation and deoptimization in a JIT compilerabstractJust-in-time compilers for dynamic languages routinely generate code under assumptions that may be invalidated at run-time, this allows for specialization of program code to the common case in order to avoid unnecessary overheads due to uncommon cases. This form of software speculation requires support for deoptimization when some of the assumptions fail to hold. This paper presents a model just-in-time compiler with an intermediate representation that explicits the synchronization points used for deoptimization and the assumptions made by the compiler's speculation. We also present several common compiler optimizations that can leverage speculation to generate improved code. The optimizations are proved correct with the help of a proof assistant. While our work stops short of proving native code generation, we demonstrate how one could use the verified optimization to obtain significant speed ups in an end-to-end setting. Aurèle Barrière, Sandrine Blazy, Olivier Flückiger, David Pichardie, Jan Vitek |
Proc. ACM Program. Lang. | 2 |
| 2020 | Formal verification of a constant-time preserving C compilerabstractTiming side-channels are arguably one of the main sources of vulnerabilities in cryptographic implementations. One effective mitigation against timing side-channels is to write programs that do not perform secret-dependent branches and memory accesses. This mitigation, known as "cryptographic constant-time", is adopted by several popular cryptographic libraries. This paper focuses on compilation of cryptographic constant-time programs, and more specifically on the following question: is the code generated by a realistic compiler for a constant-time source program itself provably constant-time? Surprisingly, we answer the question positively for a mildly modified version of the CompCert compiler, a formally verified and moderately optimizing compiler for C. Concretely, we modify the CompCert compiler to eliminate sources of potential leakage. Then, we instrument the operational semantics of CompCert intermediate languages so as to be able to capture cryptographic constant-time. Finally, we prove that the modified CompCert compiler preserves constant-time. Our mechanization maximizes reuse of the CompCert correctness proof, through the use of new proof techniques for proving preservation of constant-time. These techniques achieve complementary trade-offs between generality and tractability of proof effort, and are of independent interest. Gilles Barthe, Sandrine Blazy, Benjamin Grégoire, Rémi Hutin, Vincent Laporte, David Pichardie, Alix Trieu |
Proc. ACM Program. Lang. | 2 |
| 2019 | Formal verification of a program obfuscation based on mixed Boolean-arithmetic expressionsabstractThe insertion of expressions mixing arithmetic operators and bitwise boolean operators is a widespread protection of sensitive data in source programs. This recent advanced obfuscation technique is one of the less studied among program obfuscations even if it is commonly found in binary code. In this paper, we formally verify in Coq this data obfuscation. It operates over a generic notion of mixed boolean-arithmetic expressions and on properties of bitwise operators operating over machine integers. Our obfuscation performs two kinds of program transformations: rewriting of expressions and insertion of modular inverses. To facilitate its proof of correctness, we define boolean semantic tables, a data structure inspired from truth tables. Sandrine Blazy, Rémi Hutin |
CPP | 1 |
| 2019 | Compiling Sandboxes: Formally Verified Software Fault IsolationabstractSoftware Fault Isolation (SFI) is a security-enhancing program transformation for instrumenting an untrusted binary module so that it runs inside a dedicated isolated address space, called a sandbox. To ensure that the untrusted module cannot escape its sandbox, existing approaches such as Google’s Native Client rely on a binary verifier to check that all memory accesses are within the sandbox. Instead of relying on a posteriori verification, we design, implement and prove correct a program instrumentation phase as part of the formally verified compiler CompCert that enforces a sandboxing security property a priori . This eliminates the need for a binary verifier and, instead, leverages the soundness proof of the compiler to prove the security of the sandboxing transformation. The technical contributions are a novel sandboxing transformation that has a well-defined C semantics and which supports arbitrary function pointers, and a formally verified C compiler that implements SFI. Experiments show that our formally verified technique is a competitive way of implementing SFI. Frédéric Besson, Sandrine Blazy, Alexandre Dang, Thomas P. Jensen, Pierre Wilke |
ESOP | 2 |
| 2019 | A Verified CompCert Front-End for a Memory Model Supporting Pointer Arithmetic and Uninitialised Data
Frédéric Besson, Sandrine Blazy, Pierre Wilke |
J. Autom. Reason. | 2 |
| 2019 | CompCertS: A Memory-Aware Verified C Compiler Using a Pointer as Integer Semantics
Frédéric Besson, Sandrine Blazy, Pierre Wilke |
J. Autom. Reason. | 2 |
| 2019 | Verifying constant-time implementations by abstract interpretationabstractConstant-time programming is an established discipline to secure programs against timing attackers. Several real-world secure C libraries such as NaCl, mbedTLS, or Open Quantum Safe, follow this discipline. We propose an advanced static analysis, based on state-of-the-art techniques from abstract interpretation, to report time leakage during programming. To that purpose, we analyze source C programs and use full context-sensitive and arithmetic-aware alias analyses to track the tainted flows. We give semantic evidence of the correctness of our approach on a core language. We also present a prototype implementation for C programs that is based on the CompCert compiler toolchain and its companion Verasco static analyzer. We present verification results on various real-world constant-time programs and report on a successful verification of a challenging SHA-256 implementation that was out of scope of previous tool-assisted approaches. Sandrine Blazy, David Pichardie, Alix Trieu |
J. Comput. Secur. | 1 |
| 2018 | Selected Extended Papers of VSTTE 2016
Sandrine Blazy, Marsha Chechik |
J. Autom. Reason. | 1 |
| 2017 | Verified Translation Validation of Static AnalysesabstractMotivated by applications to security and high efficiency, we propose an automated methodology for validating on low-level intermediate representations the results of a source-level static analysis. Our methodology relies on two main ingredients: a relative-safety checker, an instance of a relational verifier which proves that a program is "safer" than another, and a transformation of programs into defensive form which verifies the analysis results at runtime. We prove the soundness of the methodology, and provide a formally verified instantiation based on the Verasco verified C static analyzer and the CompCert verified C compiler. We experiment with the effectiveness of our approach with client optimizations at RTL level, and static analyses for cache-based timing side-channels and memory usage at pre-assembly levels. Gilles Barthe, Sandrine Blazy, Vincent Laporte, David Pichardie, Alix Trieu |
CSF | 2 |
| 2017 | Verifying Constant-Time Implementations by Abstract Interpretation
Sandrine Blazy, David Pichardie, Alix Trieu |
ESORICS (1) | 1 |
| 2017 | CompCertS: A Memory-Aware Verified C Compiler Using Pointer as Integer Semantics
Frédéric Besson, Sandrine Blazy, Pierre Wilke |
ITP | 2 |
| 2017 | Structuring Abstract Interpreters Through State and Value Abstractions
Sandrine Blazy, David Bühler, Boris Yakobowski |
VMCAI | 1 |
| 2016 | Formal verification of control-flow graph flatteningabstractCode obfuscation is emerging as a key asset in security by obscurity. It aims at hiding sensitive information in programs so that they become more difficult to understand and reverse engineer. Since the results on the impossibility of perfect and universal obfuscation, many obfuscation techniques have been proposed in the literature, ranging from simple variable encoding to hiding the control-flow of a program. In this paper, we formally verify in Coq an advanced code obfuscation called control-flow graph flattening, that is used in state-of-the-art program obfuscators. Our control-flow graph flattening is a program transformation operating over C programs, that is integrated into the CompCert formally verified compiler. The semantics preservation proof of our program obfuscator relies on a simulation proof performed on a realistic language, the Clight language of CompCert. The automatic extraction of our program obfuscator into OCaml yields a program with competitive results. Sandrine Blazy, Alix Trieu |
CPP | 1 |
| 2016 | An abstract memory functor for verified C static analyzersabstractAbstract interpretation provides advanced techniques to infer numerical invariants on programs. There is an abundant literature about numerical abstract domains that operate on scalar variables. This work deals with lifting these techniques to a realistic C memory model. We present an abstract memory functor that takes as argument any standard numerical abstract domain, and builds a memory abstract domain that finely tracks properties about memory contents, taking into account union types, pointer arithmetic and type casts. This functor is implemented and verified inside the Coq proof assistant with respect to the CompCert compiler memory model. Using the Coq extraction mechanism, it is fully executable and used by the Verasco C static analyzer. Sandrine Blazy, Vincent Laporte, David Pichardie |
ICFP | 1 |
| 2016 | Verified Abstract Interpretation Techniques for Disassembling Low-level Self-modifying Code
Sandrine Blazy, Vincent Laporte, David Pichardie |
J. Autom. Reason. | 1 |
| 2016 | Improving static analyses of C programs with conditional predicates
Sandrine Blazy, David Bühler, Boris Yakobowski |
Sci. Comput. Program. | 1 |
| 2015 | Verified Validation of Program SlicingabstractProgram slicing is a well-known program transformation which simplifies a program wrt a given criterion while preserving its semantics. Since the seminal paper published by Weiser in 1981, program slicing is still widely used in various application domains. State of the art program slicers operate over program dependence graphs (PDG), a sophisticated data structure combining data and control dependences. Sandrine Blazy, André Maroneze, David Pichardie |
CPP | 1 |
| 2015 | A Concrete Memory Model for CompCert
Frédéric Besson, Sandrine Blazy, Pierre Wilke |
ITP | 2 |
| 2015 | Validating Dominator Trees for a Fast, Verified Dominance Test
Sandrine Blazy, Delphine Demange, David Pichardie |
ITP | 1 |
| 2015 | A Formally-Verified C Static AnalyzerabstractThis paper reports on the design and soundness proof, using the Coq proof assistant, of Verasco, a static analyzer based on abstract interpretation for most of the ISO C 1999 language (excluding recursion and dynamic allocation). Verasco establishes the absence of run-time errors in the analyzed programs. It enjoys a modular architecture that supports the extensible combination of multiple abstract domains, both relational and non-relational. Verasco integrates with the CompCert formally-verified C compiler so that not only the soundness of the analysis results is guaranteed with mathematical certitude, but also the fact that these guarantees carry over to the compiled code. Jacques-Henri Jourdan, Vincent Laporte, Sandrine Blazy, Xavier Leroy, David Pichardie |
POPL | 3 |
| 2015 | Data tainting and obfuscation: Improving plausibility of incorrect taintabstractCode obfuscation is designed to impede the reverse engineering of a binary software. Dynamic data tainting is an analysis technique used to identify dependencies between data in a software. Performing dynamic data tainting on obfuscated software usually yields hard to exploit results, due to over-tainted data. Such results are clearly identifiable as useless: an attacker will immediately discard them and opt for an alternative tool. In this paper, we present a code transformation technique meant to prevent the identification of useless results: a few lines of code are inserted in the obfuscated software, so that the results obtained by the dynamic data tainting approach appear acceptable. These results remain however wrong and lead an attacker to waste enough time and resources trying to analyze incorrect data dependencies, so that he will usually decide to use less automated and advanced analysis techniques, and maybe give up reverse engineering the current binary software. This improves the security of the software against malicious analysis. Sandrine Blazy, Stéphanie Riaud, Thomas Sirvent |
SCAM | 1 |
| 2014 | A Precise and Abstract Memory Model for C Using Symbolic Values
Frédéric Besson, Sandrine Blazy, Pierre Wilke |
APLAS | 2 |
| 2014 | Measuring the robustness of source program obfuscation: studying the impact of compiler optimizations on the obfuscation of C programsabstractObfuscation is a commonly used technique to protect software from the reverse engineering process. Advanced obfuscations usually rely on semantic properties of programs and thus may be performed on source programs. This raises the question of how to be sure that the binary code (that is effectively running) is still obfuscated. Sandrine Blazy, Stéphanie Riaud |
CODASPY | 1 |
| 2014 | Improving Static Analyses of C Programs with Conditional Predicates
Sandrine Blazy, David Bühler, Boris Yakobowski |
FMICS | 1 |
| 2014 | Verified Abstract Interpretation Techniques for Disassembling Low-level Self-modifying Code
Sandrine Blazy, Vincent Laporte, David Pichardie |
ITP | 1 |
| 2013 | Proofs you can believe in: proving equivalences between Prolog semantics in CoqabstractBasing program analyses on formal semantics has a long and successful tradition in the logic programming paradigm. These analyses rely on results about the relative correctness of mathematically sophisticated semantics, and authors of such analyses often invest considerable effort into establishing these results. The development of interactive theorem provers such as Coq and their recent successes both in the field of program verification as well as in mathematics, poses the question whether these tools can be usefully deployed in logic programming. This paper presents formalisations in Coq of several general results about the correctness of semantics in different styles; forward and backward, top-down and bottom-up. The results chosen are paradigmatic of the kind of correctness theorems that semantic analyses rely on and are therefore well-suited to explore the possibilities afforded by the application of interactive theorem provers to this task, as well as the difficulties likely to be encountered in the endeavour. It turns out that the advantages offered by moving to a functional setting, including the possibility to apply higher-order abstract syntax, are considerable. Jael Kriener, Andy King, Sandrine Blazy |
PPDP | 3 |
| 2013 | Formal Verification of a C Value Analysis Based on Abstract Interpretation
Sandrine Blazy, Vincent Laporte, André Maroneze, David Pichardie |
SAS | 1 |
| 2010 | Formal Verification of Coalescing Graph-Coloring Register Allocation
Sandrine Blazy, Benoît Robillard, Andrew W. Appel |
ESOP | 1 |
| 2009 | Live-range unsplitting for faster optimal coalescingabstractRegister allocation is often a two-phase approach: spilling of registers to memory, followed by coalescing of registers. Extreme live-range splitting (i.e. live-range splitting after each statement) enables optimal solutions based on ILP, for both spilling and coalescing. However, while the solutions are easily found for spilling, for coalescing they are more elusive. This difficulty stems from the huge size of interference graphs resulting from live-range splitting. This paper focuses on coalescing in the context of extreme live-range splitting. It presents some theoretical properties that give rise to an algorithm for reducing interference graphs. This reduction consists mainly in finding and removing useless splitting points. It is followed by a graph decomposition based on clique separators. The reduction and decomposition are general enough, so that any coalescing algorithm can be applied afterwards. Our strategy for reducing and decomposing interference graphs preserves the optimality of coalescing. When used together with an optimal coalescing algorithm (e.g. ILP), optimal solutions are much more easily found. The strategy has been tested on a standard benchmark, the optimal coalescing challenge. For this benchmark, the cutting-plane algorithm for optimal coalescing (the only optimal algorithm for coalescing) runs 300 times faster when combined with our strategy. Moreover, we provide all the optimal solutions of the optimal coalescing challenge, including the three instances that were previously unsolved. Sandrine Blazy, Benoît Robillard |
LCTES | 1 |
| 2009 | Mechanized Semantics for the Clight Subset of the C Language
Sandrine Blazy, Xavier Leroy |
J. Autom. Reason. | 1 |
| 2008 | Formal Verification of a C-like Memory Model and Its Uses for Verifying Program Transformations
Xavier Leroy, Sandrine Blazy |
J. Autom. Reason. | 2 |
| 2006 | Formal Verification of a C Compiler Front-End
Sandrine Blazy, Zaynah Dargaye, Xavier Leroy |
FM | 1 |
| 2005 | Formal Verification of a Memory Model for C-Like Imperative Languages
Sandrine Blazy, Xavier Leroy |
ICFEM | 1 |
| 2000 | Specifying and Automatically Generating a Specialization Tool for Fortran 90
Sandrine Blazy |
Autom. Softw. Eng. | 1 |
| 1997 | Application of Formal Methods to the Development of a Software Maintenance ToolabstractPartial evaluation is an optimization technique traditionally used in compilation. We have adapted this technique to the understanding of scientific application programs during their maintenance, and we have implemented a tool that analyzes Fortran 90 application programs and performs an interprocedural pointer analysis. This paper presents how we have specified this analysis with different formalisms (inference rules with global definitions and set and relational operators). Then we present the tool implementing these specifications. It has been implemented in a generic programming environment and a graphical interface has been developed to visualize the information computed during the partial evaluation (values of variables, already-analyzed procedures, scope of variables, removed statements, etc.). Sandrine Blazy, Philippe Facon |
ASE | 1 |
| 1994 | Partial Evaluation for the Understanding of Fortran ProgramsabstractThis paper describes a technique and a tool that support partial evaluation of FORTRAN programs, i.e., their specialization for specific values of their input variables. The authors’ aim is to understand old programs, which have become very complex due to numerous extensions. From a given FORTRAN program and these values of its input variables, the tool provides a simplified program, which behaves like the initial program for the specific values. This tool mainly uses constant propagation and simplification of alternatives to one of their branches. The tool is specified in terms of inference rules and operates by induction on the FORTRAN abstract syntax. These rules are compiled into Prolog by the Centaur/FORTRAN programming environment. The completeness and soundness of these rules are proven using rule induction. Sandrine Blazy, Philippe Facon |
Int. J. Softw. Eng. Knowl. Eng. | 1 |
| 1993 | Partial Evaluation and Symbolic Computation for the Understanding of Fortran Programs
Sandrine Blazy, Philippe Facon |
CAiSE | 1 |
| 1992 | Software maintenance: an analysis of industrial needs and constraintsabstractThe results are given of a series of case studies conducted at different industrial sites in the framework of the ESF/EPSOM (Eureka Software Factory/European Platform for Software Maintenance) project. The approach taken in the case studies was to directly contact software maintainers and obtain their own view of their activity, mainly through the use of interactive methods based on group work. This approach is intended to complement statistical studies which can be found in the literature, by presenting the perspective of the maintainers based on their experience. The aim of these studies has been to gain a better understanding of maintenance needs and constraints, and to highlight directions which could lead to improvements in the quality and efficiency of maintenance activities. The results obtained tend to conform the main preoccupations of the maintenance community, with an emphasis on two types of needs which appear crucial in the domains of activity of the partners, namely: the transfer, preservation and maintenance of knowledge; and the mastering of the maintenance process.> Marc Haziza, J. F. Voidrot, E. Minor, L. Pofelski, Sandrine Blazy |
ICSM | 5 |