Papers and Slides

BibTeX

Overview

  • Coccinelle: A Program Matching and Transformation Tool for Systems Code. An overview of Coccinelle. July 2009.

  • A Foundation for Flow-Based Program Matching. An overview of how Coccinelle works. September 2009.

  • Finding Bugs in Open Source Systems Code using Coccinelle. A brief overview of the use of Coccinelle to find bugs in Linux code. February 2010.
    Video @ FOSDEM 2010 [Direct download - 49MB] [Youtube]

  • Simple SmPL, Advanced SmPL, and Exercises from the January 2011 Coccinelle workshop.
  • 2019 Linaro Connect Keynote: Coccinelle: 10 Years of Automated Evolution in the Linux Kernel
  • A tutorial, requires Linux 3.2 source code. A video version of the tutorial.
  • A tutorial, requires Qemu 2.4.0 source code. A video version of the tutorial.
  • HPC-oriented Tutorial from Michele Martone (CC-BY-4). Exercises.
  • An early talk at Microsoft Research
  • Videos from the January 26, 2011 workshop

  • Gilles Muller on an overview of Coccinelle.
  • Julia Lawall on an introduction to the SmPL language:
  • Julia Lawall on advanced SmPL concepts.
  • Some uses of Coccinelle:
  • Research papers

  • Automatic Inference of System Software Transformation Rules from Examples. (Inférence automatique à partir d'exemples de règles de transformations logicielles).
    Lucas Serrano.
    PhD thesis, Sorbonne University, France, 2020
  • SPINFER: Inferring Semantic Patches for the Linux Kernel.
    Lucas Serrano, Van-Anh Nguyen, Ferdian Thung, Lingxiao Jiang, David Lo, Julia Lawall, Gilles Muller.
    USENIX Annual Technical Conference 2020: 235-248
  • Coccinelle: 10 Years of Automated Evolution in the Linux Kernel.
    Julia Lawall, Gilles Muller.
    USENIX Annual Technical Conference 2018: 601-614
  • Increasing Automation in the Backporting of Linux Drivers Using Coccinelle
    Luis R. Rodriguez and Julia Lawall.
    11th European Dependable Computing Conference - Dependability in Practice (EDCC 2015), Paris, France, September 2015. (slides)

  • Faults in Linux 2.6
    Nicolas Palix, Gaël Thomas, Suman Saha, Christophe Calvès, Gilles Muller, Julia Lawall.
    ACM Trans. Comput. Syst. 32(2): 4:1-4:40 (2014) (open access) (data)

  • Faults in Linux: Ten Years Later
    Nicolas Palix, Gaël Thomas, Suman Saha, Christophe Calvès, Julia Lawall, Gilles Muller.
    Sixteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2011), Newport Beach, California, March 2011, pages 305-318. (local copy) (slides)

  • Finding Error Handling Bugs in OpenSSL using Coccinelle
    Julia Lawall, Ben Laurie, René Rydhof Hansen, Nicolas Palix, Gilles Muller.
    Eighth European Dependable Computing Conference, EDCC 2010, Valencia, Spain, April 2010. (local copy)

  • Tracking code patterns over multiple software versions with Herodotos. Nicolas Palix, Julia L. Lawall, Gilles Muller.
    Proceedings of the 9th International Conference on Aspect-Oriented Software Development, AOSD 2010, Rennes and Saint-Malo, France, March 2010, pages 169-180. (local copy)

  • How Often Do Experts Make Mistakes?
    Nicolas Palix, Julia L. Lawall, Gaël Thomas, Gilles Muller.
    9th Workshop on Aspects, Components, and Patterns for Infrastructure Software (ACP4IS 2010), ACP4IS 2010, Rennes and Saint-Malo, France, March 2010.

  • Herodotos: A Tool to Expose Bugs' Lives
    Nicolas Palix, Julia Lawall, Gilles Muller.
    INRIA research report RR-6984. A version of this paper will be presented at the Conference Francaise sur les Systemes d'Exploitation (CFSE'09). The data from the paper is available here.

  • Finding Bugs in Open Source Software using Coccinelle
    Sune Rievers Bachelors Thesis, University of Copenhagen, June 2009.

  • WYSIWIB: A Declarative Approach to Finding Protocols and Bugs in Linux Code (local copy)
    Julia L. Lawall, Julien Brunel, Nicolas Palix, René Rydhof Hansen, Henrik Stuart, Gilles Muller
    DSN 2009 - The 39th Annual IEEE/IFIP International Conference on Dependable Systems and Networks, pages 43-52, Estoril, Portugal, June 2009. Preliminary version available as Ecole des Mines de Nantes Technical Report 08/1/INFO. July 2008. Data from the paper. Slides from the talk.

  • Enforcing the use of API functions in Linux code (local copy)
    Julia Lawall, Gilles Muller, Nicolas Palix
    8th Workshop on Aspects, Components, and Patterns for Infrastructure Software (ACP4IS '09), pages 7-11, Charlottesville, VA, USA, March, 2009.

  • A Foundation for Flow-Based Program Matching Using Temporal Logic and Model Checking (local copy)
    Julien Brunel, Damien Doligez, René Rydhof Hansen, Julia Lawall, Gilles Muller
    The 36th Annual ACM SIGPLAN - SIGACT Symposium on Principles of Programming Languages, pages 114-126, Savannah, Georgia, USA, January, 2009.
    Preliminary version available as Ecole des Mines de Nantes Technical Report 08/2/INFO. July 2008.

  • Generic Patch Inference (local copy)
    Jesper Andersen and Julia Lawall
    23rd IEEE/ACM International Conference on Automated Software Engineering, 337-346, L'Aquila, Italy, September 2008.
    (Distinguished paper award). More information about the tool, spdiff, described in this paper is available here.

  • Hunting bugs with Coccinelle
    Henrik Stuart
    Masters Thesis, University of Copenhagen, August 2008.

  • Documenting and Automating Collateral Evolutions in Linux Device Drivers (local copy)
    Yoann Padioleau, Julia Lawall, Gilles Muller, René Rydhof Hansen
    EuroSys 2008, pages 247-260, Glasgow, Scotland, April, 2008. (slides) The semantic patches and test files used in this paper are also available: coccinelle-tests.tgz

  • Towards Easing the Diagnosis of Bugs in OS Code (local copy)
    Henrik Stuart, René Rydhof Hansen, Julia L. Lawall, Jesper Andersen, Yoann Padioleau, and Gilles Muller
    4th Workshop on Programming Languages and Operating Systems, Stevenson, Washington, October 2007. (slides)

  • Tutorial paper: Semantic Patches, Documenting and Automating Collateral Evolutions in Linux Device Drivers
    Yoann Padioleau, Julia L. Lawall, and Gilles Muller
    Ottawa Linux Symposium (OLS 2007), June 2007. (slides: PPT, ODP ).
    This tutorial also introduces the second version of the language SmPL where the use of inherited metavariables is made easier.

  • Towards Documenting and Automating Collateral Evolutions in Linux Device Drivers
    Yoann Padioleau, René Rydhof Hansen, Julia L. Lawall, and Gilles Muller
    INRIA Research Report, January 2007.

  • Semantic Patches for Documenting and Automating Collateral Evolutions in Linux Device Drivers (local copy)
    Yoann Padioleau, René Rydhof Hansen, Julia L. Lawall, and Gilles Muller
    PLOS 2006: Workshop on Linguistic Support for Modern Operating Systems, San Jose, California, October 2006. (slides)

  • Position paper: Semantic Patches Considered Helpful (local copy)
    Gilles Muller, Yoann Padioleau, Julia L. Lawall, and René Rydof Hansen
    ACM SIGOPS Operating Systems Review (July 2006)

  • SmPL: A Domain-Specific Language for Specifying Collateral Evolutions in Linux Device Drivers
    Yoann Padioleau, Julia L. Lawall, and Gilles Muller
    International ERCIM Workshop on Software Evolution (2006), ENTCS (slides)

  • Understanding Collateral Evolution in Linux Device Drivers (local copy)
    Yoann Padioleau, Julia L. Lawall, and Gilles Muller
    Proceedings of the ACM SIGOPS EuroSys 2006 Conference, pages 59-71, Leuven, Belgium, April 2006. (slides)
    Software
    Also available as INRIA Research Report RR-5769, November 2005

  • Tarantula: Killing Driver Bugs Before They Hatch
    Julia L. Lawall, Gilles Muller, Richard Urunuela
    Proceedings of the Fourth AOSD Workshop on Aspects, Components, and Patterns for Infrastructure Software (ACP4IS), pages 13-18, Chicago, Illinois, March 2005. (slides) (Coccinelle was formerly known as Tarantula.)
  • Papers by others using Coccinelle

  • Deciding between if and switch when writing code
    Derek M. Jones
    CVu, volume 21, 2009.