Eclipse plugin for transforming Java programs using code templates.
Java Clojure HTML GAP Emacs Lisp Makefile
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
damp.ekeko.snippets.feature
damp.ekeko.snippets.plugin.test
damp.ekeko.snippets.plugin
.gitignore
.travis.yml
README.md
build-individually configured individual maven build, preparing for continuous integrati… Apr 11, 2014
pom.xml

README.md

Ekeko/X

Ekeko/X (aka damp.ekeko.snippets) is an Eclipse plugin for transforming Java programs. Its transformation specifications consist of a left-hand side and a right-hand side component. The left-hand side component identifies the subjects of the transformation, while the right-hand side component defines how each identified subject should be rewritten.

Ekeko/X specifications are decidedly template-based. On the left-hand side, code templates are used to specify the structural (i.e., instructions and their organization) as well as the behavioral (i.e., the order in which instructions are executed at run-time and the values instructions operate on) characteristics of the intended transformation subjects. This requires a rich, inter-procedural matching semantics. On the right-hand side, code templates exemplify the changes to each subject.

Ekeko/X owes its peculiar name to our meta-programming library for Clojure on which it is founded. This library, called Ekeko, enables implementing Eclipse plugins as functional programs in which logic queries are embedded seamlessly.

Automated template generalization and refinement + experiments

To assist Ekeko/X users in writing templates, the tool also provides a search-based approach to automatically generalize/refine a template, such that it produces a given desired set of source code snippets. Usage information, as well as how to reproduce the experiments that evaluate the approach are available in the genetic algorithm documentation.

Download experiment data (161 MB)

Demo

The following screencast provides a brief overview of Ekeko/X:

Ekeko/X Overview

Example program transformations can be found in directory damp.ekeko.snippets.plugin.test/resources/TestCase-JDT-CompositeVisitor-Templates.

For our SCAM14 submission, the relevant files start with a chaqdemo_ prefix. Opening these files from within Eclipse launches the transformation editor on them. The program under transformation can be found at csmrwcrecase.zip.

Installation

The Ekeko/X plugin can be built from source (EkekoSnippets) or installed from our Eclipse update-site: http://soft.vub.ac.be/~cderoove/eclipse/

The installation instructions for Ekeko should be consulted as well: README.md

Ekeko/X has been tested against Eclipse Kepler, Luna, Mars and Mars.1.

License

Copyright © 2013-2016 Ekeko/X contributors:

Distributed under the Eclipse Public License.

External dependencies:

  • Eclipse plugin Ekeko (Eclipse Public License)