Publication | Open Access
SmPL: A Domain-Specific Language for Specifying Collateral Evolutions in Linux Device Drivers
24
Citations
10
References
2006
Year
Software MaintenanceEngineeringCollateral EvolutionsComputer ArchitectureSoftware EngineeringSource Code AnalysisCollateral Evolution ProblemSoftware AnalysisFormal VerificationLinux Device DriversFirmware DetectionProgram TransformationTransformation LanguageComputer EngineeringComputer ScienceDomain-specific LanguageDevice DriverStatic Program AnalysisSoftware DesignCode RefactoringEmbedded Operating SystemHardware EmulationProgram AnalysisSoftware TestingFormal MethodsSystem Software
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.
| Year | Citations | |
|---|---|---|
Page 1
Page 1