Coccinelle (ソフトウェア)

Coccinelle (フランス語でテントウムシ) は、プログラミング言語のC言語で書かれたプログラムのソースコードのマッチング及びを行うためのツールである。Coccinelleは当初Linuxの進化を助けるために使用された。それにおいて、関数の改名、何らかのコンテキストに依存した値の引数の追加、データ構造の再編のような、ライブラリのAPIの変更することを支援している。このツールはオープンソースライセンスの基で自由に使用可能である。

マッチングや変換されるソースコードは、C言語にとても良く似たパターン(セマンティックパッチ言語)を使用して指定される。

例
 @@
 expression lock, flags;
 expression urb;
 @@
 
  spin_lock_irqsave(lock, flags);
  <...
 - usb_submit_urb(urb)
 + usb_submit_urb(urb, GFP_ATOMIC)
  ...>
  spin_unlock_irqrestore(lock, flags);
 
 @@
 expression urb;
 @@
 
 - usb_submit_urb(urb)
 + usb_submit_urb(urb, GFP_KERNEL)

開発
サポートはにより提供されており、Coccinelleの開発資金提供は  (フランス)、Danish Research Council for Technology and Production Sciences及びINRIAにより提供されている。

出典

外部リンク
 Official release tracking repository at GitHub
 Articles describing the use of Coccinelle
 Coccinellery: Semantic Patch Gallery

ソフトウェア開発ツール
オープンソースソフトウェア