e-Knife: slicing of Erlang with constraints

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

e-Knife is a program slicer for Erlang. It is based on the Program Dependence Graph with some adaptations and extensions which are specific to Erlang. Additionally, it has additional constraints in some edges, for increased precision in complex data structures.

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): ,
Which kind of graph do you want to use?


Output the graph?