PEPE: Predicting the Effectiveness of Partial Evaluation (web interface)

PEPE is a tool that help the user to estimate the cost improvements that can be achieved by a partial evaluator. It takes as input a logic program and an abstract atom, i.e., an atom whose arguments are either s (static) or d (dynamic), and proceeds as follows:

The analysis gives only qualitative information so far: it shows two regular expressions denoting the call traces of the original and partially evaluated program. By comparing the two traces, the user can observe which predicate calls would be removed by partial evaluation and whether their removal would imply a significant speedup or not.

A technical description can be found in this paper.

You can either write down the initial program or choose one from the list of examples. Once the program is loaded in, you should also provide an abstract atom. The abstract atom is used as entry for both the trace analysis and the binding-time analysis, e.g., incList(d,s,d) in example incList.pl, where s means that the corresponding argument is static (definitely known) and d means that it is dynamic (possibly unknown).


Source program
Choose a file:     Abstract atom:

Output

*** Only tested in Mozilla/Firefox ***

Last update / Germán Vidal