Introduction to Semantic Patching of C programs with Coccinelle

We are pleased to announce that the Leibniz Supercomputing Centre will offer a new course "Introduction to Semantic Patching of C programs with Coccinelle" for advanced C/C++ programmers.

Date & Location

Thursday, April 4, 2019, 10:00 - 17:00
Leibniz Supercomputing Centre (LRZ) of the Bavarian Academy of Sciences and Humanities, Garching near Munich, Boltzmannstr. 1, Kursraum 2, H.U.010

Course Description

The maintenance of a large software project can be very demanding. External factors like evolving third-party software library APIs, or constantly changing hardware platforms might require significant code adaptions for the code to run efficiently, or to run at all. Failure in coping with this can lead to obsolescence, loss of performance, incompatibility, vendor lock-in, bugs.

Have you ever wondered how to detect and manipulate specified classes of C code constructs, be it for code analysis, or better, to restructure an arbitrarily large codebase according to a specified, non-trivial `pattern', without writing a C compiler?

In this training we introduce you to a tool to do exactly this: match and restructure C codebases in a programmatic, formal way. The training will also show how to analyze code looking for interesting patterns (e.g. bugs), integrate with your Python scripts to achieve the custom transformations you need, and leverage Coccinelle's limited C++ support. Special attention will be on performance-oriented transformations, of other interests of HPC practitioners.

After this training, you shall be able to write your own code transformations, be it for a refactoring, performance improvement, paving the way to an experimental fork, or for debugging and further analysis.


Dr. Michele Martone (LRZ)

Registration and further information

Information on further HPC courses:

Please also pass this course announcement to other interested colleagues.

Verfasser: Dr. Volker Weinberg
veröffentlicht: 2019-02-01