SmPL: A Domain-Specific Language for Specifying Collateral Evolutions in Linux Device Drivers

Publikation: Bidrag til tidsskriftTidsskriftartikelForskningfagfællebedømt

  • Yoann Padioleau
  • Julia Laetitia Lawall
  • Gilles Muller

Collateral evolutions are a pervasive problem in large-scale software development. Such evolutions occur when an evolution that affects the interface of a generic library entails modifications, i.e., collateral evolutions, in all library clients. Performing these collateral evolutions requires identifying the affected files and modifying all of the code fragments in these files that in some way depend on the changed interface.

We have studied the collateral evolution problem in the context of Linux device drivers. Currently, collateral evolutions in Linux are mostly done manually using a text editor, possibly with the help of tools such as grep. The large number of Linux drivers, however, implies that this approach is time-consuming and unreliable, leading to subtle errors when modifications are not done consistently.

In this paper, we propose a transformation language, SmPL, to specify collateral evolutions. Because Linux programmers are accustomed to exchanging, reading, and manipulating program modifications in terms of patches, we build our language around the idea and syntax of a patch, extending patches to semantic patches.


Udgivelsesdato: January 3
OriginalsprogEngelsk
TidsskriftElectronic Notes in Theoretical Computer Science
Vol/bind166
Sider (fra-til)47-62
DOI
StatusUdgivet - 2007

Bibliografisk note

Paper id:: doi:10.1016/j.entcs.2006.07.022

ID: 1337803