Developing software often requires code changes that are widespread and applied to multiple locations. There are tools for Java that allow developers to specify patterns for program matching and source-to-source transformation. However, to our knowledge, none allows for transforming code based on its control-flow context. We prototype Coccinelle4J, an extension to Coccinelle, which is a program transformation tool designed for widespread changes in C code, in order to work on Java source code. We adapt Coccinelle to be able to apply scripts written in the Semantic Patch Language (SmPL), a language provided by Coccinelle, to Java source files. As a case study, we demonstrate the utility of Coccinelle4J with the task of API migration. We show 6 semantic patches to migrate from deprecated Android API methods on several open source Android projects. We describe how SmPL can be used to express several API migrations and justify several of our design decisions.
Thu 18 JulDisplayed time zone: Belfast change
10:30 - 12:10 | |||
10:30 20mResearch paper | How to Avoid Making a Billion-Dollar Mistake: Type-Safe Data Plane Programming with SafeP4 Research Papers Matthias Eichholz , Eric Campbell Cornell University, Nate Foster Cornell University, Guido Salvaneschi TU Darmstadt, Mira Mezini TU Darmstadt, Germany DOI Media Attached | ||
10:50 20mResearch paper | Fling—A Fluent API Generator Research Papers DOI | ||
11:10 20mResearch paper | Semantic Patches for Java Program Transformation Research Papers Hong Jin Kang School of Information Systems, Singapore Management University, Ferdian Thung , Julia Lawall Inria/LIP6, Gilles Muller LIP6-INRIA/UPMC, Lingxiao Jiang Singapore Management University, David Lo Singapore Management University DOI Media Attached | ||
11:30 20mResearch paper | Finally, a Polymorphic Linear Algebra Language Research Papers DOI | ||
11:50 20mResearch paper | NumLin: Linear Types for Linear Algebra Research Papers DOI Pre-print Media Attached File Attached |