Automated Generalization and Refinement of Code Templates with Ekeko/X

2016-04-29T16:21:44Z (GMT) by Tim Molderez Coen De Roover
Presentation given at the SANER'16 Tool demo track

Abstract -- Code templates are an intuitive means to specify source code snippets of interest, such as all instances of a bug, groups of snippets that need to be refactored or transformed, or instances of design patterns. While intuitive, it is not always straightforward to write a template that produces only the desired matches. A template could produce either more snippets than desired, or too few. To assist the users of Ekeko/X, our template-based search and transformation tool for Java, we have extended it with two components: The first is a suite of mutation operators that simplifies the process of modifying templates. The second is a system that can automatically suggest a sequence of mutations to a given template, such that it matches only with a set of desired snippets. In this tool paper, we highlight the key design decisions in implementing these two components of Ekeko/X, and demonstrate their use by walking through an example sequence of mutations suggested by the system.