TY - JOUR
T1 - SmPL: A Domain-Specific Language for Specifying Collateral Evolutions in Linux Device Drivers
AU - Padioleau, Yoann
AU - Lawall, Julia Laetitia
AU - Muller, Gilles
N1 - Paper id:: doi:10.1016/j.entcs.2006.07.022
PY - 2007
Y1 - 2007
N2 - 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
AB - 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
KW - Faculty of Science
KW - Linux
KW - device drivers
KW - collateral evolutions
KW - domain-specific languages
U2 - doi:10.1016/j.entcs.2006.07.022
DO - doi:10.1016/j.entcs.2006.07.022
M3 - Journal article
SN - 1571-0661
VL - 166
SP - 47
EP - 62
JO - Electronic Notes in Theoretical Computer Science
JF - Electronic Notes in Theoretical Computer Science
ER -