e-Knife: slicing of Erlang with the EDG

Click here for a short description of the technique...

e-Knife is a program slicer for Erlang. It is based on the Expression Dependence Graph, an extension of the System Dependence Graph with higher granularity, using expressions as the basis for each node, instead of statements.

Given an Erlang program, first, a graph representation is generated, that contains all the control and flow interrelations. Then, the standard program slicing algorithm is used to extract slices in linear time.

You can compile and use the slicer on your own machines by downloading the source from its repository.

This webapp is a limited trial of e-Knife, with time and memory constraints to avoid abuse.
You can generate slices and graphs for simple programs.

You can either write down an Erlang program (a complete module) or choose one from the list of examples (extracted from Bencher).

Usage instructions:

  1. Select/write your Erlang program.
  2. Select a variable in the editor to pick it as the slicing criterion.
  3. If you want to see the graph, select that option and adjust the edges that you want to see.
  4. Press the Slice button, and the result will be loaded on the corresponding editor. If you have selected the graph, you can download the graph using the buttons below.

, , or
Slicing criterion (select it in the editor): ,
Output the graph?