DPPD (Dozens of Problems for Partial Deduction)
Maintained by Michael Leuschel. Suggestions, comments or new benchmark ideas, are always welcome.
This library aims at being a standard suite of benchmarks for partial deduction. It started out by the observation that the only accepted benchmark suite in partial deduction (the so called Lam and Kusalik benchmarks) contains too few benchmarks, most of which are too simple and too small. So the idea came up to generate something like the TPTP (Thousands of Problems for Theorem Proving) library, but for partial deduction.
The library contains benchmarks consisting of declarative logic programs, together with descriptions on the particular specialisation that should be performed by a partial deducer. The library also contains run-time queries by which the specialised program should be compared to the original.
See also the ECCE partial deduction system.
All built-in's which can be given a declarative semantics (maybe under some restrictions of the selection rule) are allowed. For instance the following built-in's might occur in some of the benchmark programs:
- =../2
- call/1
- =/2
- is/2
- =/2
- nonvar/1 (supposed to be delayed until its argument is nonvar)
- ground/1 (supposed to be delayed until its argument is nonvar)
- \=/2, \==/2 (supposed to be delayed until sufficiently instantiated)
The benchmarks marked with (LK) are the original Lam and Kusalik benchmarks. Benchmarks marked with (JJ) were brought to my attention or designed by Jesper Jorgensen. More details about the origins of the benchmarks can usually be found in their respective descriptions.
- advisor
- applast
- ctl
- contains (LK)
- contains.kmp
- depth (LK)
- doubleapp
- ex_depth
- flip (JJ)
- grammar (LK)
- groundunify.complex
- groundunify.simple
- imperative.power
- liftsolve.app
- liftsolve.db1
- liftsolve.db2
- liftsolve.lmkng
- map.reduce
- map.rev
- match-append (JJ)
- match (LK)
- match.kmp
- maxlength
- memo-solve
- missionaries
- model-elim.app
- petri-meta
- petri-object
- regexp.r1
- regexp.r2
- regexp.r3
- relative (LK)
- remove (JJ)
- remove2 (JJ)
- rev_acc_type
- rev_acc_type.inffail
- rotateprune
- ssuply (LK)
- transpose (LK)
- upto.sum1 (JJ)
- upto.sum2 (JJ)
Direct or indirect contributors to the above list are: Elvira Albert, Andre de Waal, John Gallagher, Micky Gomez-Zamalloa, Robert Glueck, Kim Henriksen, Thomas Horvath, Jesper Jorgensen, John Gallagher, A. Kusalik, J. Lam, Bern Martens, Alberto Pettorossi, Maurizio Proietti, German Puebla, Morten Heine Sorensen, Valentin Turchin and Phil Wadler .