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

Yoann Padioleau, Julia Laetitia Lawall, Gilles Muller

15 Citations (Scopus)

Abstract

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
Original languageEnglish
JournalElectronic Notes in Theoretical Computer Science
Volume166
Pages (from-to)47-62
DOIs
Publication statusPublished - 2007

Keywords

  • Faculty of Science
  • Linux
  • device drivers
  • collateral evolutions
  • domain-specific languages

Cite this