Skip to main content

Showing 1–9 of 9 results for author: Pichardie, D

Searching in archive cs. Search in all archives.
.
  1. arXiv:2304.10379  [pdf, other

    cs.SE

    Leveraging Static Analysis for Bug Repair

    Authors: Ruba Mutasim, Gabriel Synnaeve, David Pichardie, Baptiste Rozière

    Abstract: We propose a method combining machine learning with a static analysis tool (i.e. Infer) to automatically repair source code. Machine Learning methods perform well for producing idiomatic source code. However, their output is sometimes difficult to trust as language models can output incorrect code with high confidence. Static analysis tools are trustable, but also less flexible and produce non-idi… ▽ More

    Submitted 21 April, 2023; v1 submitted 20 April, 2023; originally announced April 2023.

    Comments: 13 pages. DL4C 2023

  2. Formally Verified Native Code Generation in an Effectful JIT -- or: Turning the CompCert Backend into a Formally Verified JIT Compiler

    Authors: Aurèle Barrière, Sandrine Blazy, David Pichardie

    Abstract: Modern 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… ▽ More

    Submitted 6 December, 2022; originally announced December 2022.

    Comments: Proceedings of the ACM on Programming Languages, 2023

  3. Verified Functional Programming of an Abstract Interpreter

    Authors: Lucas Franceschino, David Pichardie, Jean-Pierre Talpin

    Abstract: Abstract interpreters are complex pieces of software: even if the abstract interpretation theory and companion algorithms are well understood, their implementations are subject to bugs, that might question the soundness of their computations. While some formally verified abstract interpreters have been written in the past, writing and understanding them requires expertise in the use of proof ass… ▽ More

    Submitted 17 October, 2021; v1 submitted 20 July, 2021; originally announced July 2021.

    Comments: Published in SAS21

  4. arXiv:1509.06503  [pdf, other

    cs.PL

    A Verified Information-Flow Architecture

    Authors: Arthur Azevedo de Amorim, Nathan Collins, André DeHon, Delphine Demange, Catalin Hritcu, David Pichardie, Benjamin C. Pierce, Randy Pollack, Andrew Tolmach

    Abstract: SAFE is a clean-slate design for a highly secure computer system, with pervasive mechanisms for tracking and limiting information flows. At the lowest level, the SAFE hardware supports fine-grained programmable tags, with efficient and flexible propagation and combination of tags as instructions are executed. The operating system virtualizes these generic facilities to present an information-flow… ▽ More

    Submitted 6 March, 2016; v1 submitted 22 September, 2015; originally announced September 2015.

  5. arXiv:1304.3596  [pdf, other

    cs.PL

    Formal Verification of a C Value Analysis Based on Abstract Interpretation

    Authors: Sandrine Blazy, Vincent Laporte, André Maroneze, David Pichardie

    Abstract: Static analyzers based on abstract interpretation are complex pieces of software implementing delicate algorithms. Even if static analysis techniques are well understood, their implementation on real languages is still error-prone. This paper presents a formal verification using the Coq proof assistant: a formalization of a value analysis (based on abstract interpretation), and a soundness proof o… ▽ More

    Submitted 12 April, 2013; originally announced April 2013.

    Journal ref: SAS - 20th Static Analysis Symposium Lecture Notes in Computer Science (2013) 324-344

  6. Secure the Clones

    Authors: Thomas Jensen, Florent Kirchner, David Pichardie

    Abstract: Exchanging mutable data objects with untrusted code is a delicate matter because of the risk of creating a data space that is accessible by an attacker. Consequently, secure programming guidelines for Java stress the importance of using defensive copying before accepting or handing out references to an internal mutable object. However, implementation of a copy method (like clone()) is entirely le… ▽ More

    Submitted 4 June, 2012; v1 submitted 19 April, 2012; originally announced April 2012.

    ACM Class: I.1.2, F.3.1, F.3.3, D.3.3

    Journal ref: Logical Methods in Computer Science, Volume 8, Issue 2 (May 31, 2012) lmcs:801

  7. Sawja: Static Analysis Workshop for Java

    Authors: Laurent Hubert, Nicolas Barré, Frédéric Besson, Delphine Demange, Thomas Jensen, Vincent Monfort, David Pichardie, Tiphaine Turpin

    Abstract: Static analysis is a powerful technique for automatic verification of programs but raises major engineering challenges when develo** a full-fledged analyzer for a realistic language such as Java. This paper describes the Sawja library: a static analysis framework fully compliant with Java 6 which provides OCaml modules for efficiently manipulating Java bytecode programs. We present the main feat… ▽ More

    Submitted 20 July, 2010; originally announced July 2010.

    Journal ref: The International Conference on Formal Verification of Object-Oriented Software 2010.13 (2010) 253--267

  8. Soundly Handling Static Fields: Issues, Semantics and Analysis

    Authors: Laurent Hubert, David Pichardie

    Abstract: Although in most cases class initialization works as expected, some static fields may be read before being initialized, despite being initialized in their corresponding class initializer. We propose an analysis which compute, for each program point, the set of static fields that must have been initialized and discuss its soundness. We show that such an analysis can be directly applied to identify… ▽ More

    Submitted 20 July, 2010; v1 submitted 19 July, 2010; originally announced July 2010.

    Comments: Proceedings of the Fourth Workshop on Bytecode Semantics, Verification, Analysis and Transformation (BYTECODE 2009)

    Journal ref: Electronic Notes in Theoretical Computer Science 253, 5 (2009) 15 - 30

  9. arXiv:1007.3133  [pdf, ps, other

    cs.PL

    Enforcing Secure Object Initialization in Java

    Authors: Laurent Hubert, Thomas Jensen, Vincent Monfort, David Pichardie

    Abstract: Sun and the CERT recommend for secure Java development to not allow partially initialized objects to be accessed. The CERT considers the severity of the risks taken by not following this recommendation as high. The solution currently used to enforce object initialization is to implement a coding pattern proposed by Sun, which is not formally checked. We propose a modular type system to formally sp… ▽ More

    Submitted 19 July, 2010; originally announced July 2010.

    Journal ref: 15th European Symposium on Research in Computer Security (ESORICS) 6345 (2010) 101-115