Refreshments 3:20 p.m.
Abstract
Program matching is the process of searching within the source code of a
program for code fragments matching a given pattern, described using some
language. Program matching languages have been found useful in specifying
rules for program manipulation tasks such as compiler optimizations, bug
finding, refactorings, and evolution.
We have developed the transformation system Coccinelle, which provides the
language SmPL (Semantic Patch Language) for specifying desired matches and
transformations in C code. Coccinelle was initially targeted towards
performing collateral evolutions in Linux. Such evolutions comprise the
changes that are needed in client code in response to evolutions in library
APIs, and may include modifications such as renaming a function, adding a
function argument whose value is somehow context-dependent, and reorganizing a
data structure. Beyond collateral evolutions, Coccinelle is successfully used
(by us and others) for finding and fixing bugs in systems code.
In this talk, we present the main features of Coccinelle and some of its
classical usages.
Bio
Gilles Muller received the Ph.D. degree in 1988 from the University of Rennes
I, and the Habilitation a Diriger des Recherches degree in 1997 from the
University of Rennes I.
After having been a researcher at INRIA and a Professor at the Ecole des Mines
de Nantes, he is currently a senior research scientist at INRIA Paris-Rocquencourt. His research interests include the development of new methodologies based on the use of domain-specific languages for the structuring
of operating systems. Gilles Muller has been a member of the IEEE since 1995
and was the vice chair of the ACM/SIGOPS from July 2003 to July 2007.