We rationally reconstruct the core of the Coccinelle system, used for automating and documenting collateral evolutions in Linux device drivers. A denotational semantics of the system's underlying semantic patch language (SmPL) is developed, and extended to include variables. The semantics is in essence a higher-order functional program and so executable; but is inefficient and limited to straight-line source programs. A richer and more efficient SmPL version is defined, implemented by compiling to the temporal logic CTL-V (CTL with existentially quantified variables ranging over source code parameters and program points; defined using the staging concept from partial evaluation). The compilar tion is formally proven correct and a model check algorithm is outlined. © Springer-Verlag Berlin Heidelberg 2007.
CITATION STYLE
Jones, N. D., & Hansen, R. R. (2007). The semantics of “semantic patches” in coccinelle: Program transformation for the working programmer. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 4807 LNCS, pp. 303–318). Springer Verlag. https://doi.org/10.1007/978-3-540-76637-7_21
Mendeley helps you to discover research relevant for your work.