China's logo










Descriptions of Some Programs in the Benchmark Suite

[Page last updated on 2001/01/23 09:33:12.]

Several programs in the suite have become more or less standard for the evaluation of data-flow analyzers. Others, the more interesting ones, are real applications. Please note that the list below is rather incomplete: at present, only half of the benchmarks are described here.


I did my best to credit all the authors of the programs listed. However, some programs in the test-suite do not give any indication in this respect.

Program Descriptions
An interpreter for action semantics written by S. Diehl.
A residential air conditioning diagnosis system, originally written in A.D.A. Prolog by C. Bredlau.
A program to solve the ``Eight-Puzzle'' using iterative deepening.
A program to calculate excess air needed for a chemical reaction to proceed in some way, an example program included in the distribution of CLP(R) 2.0 by Monash University.
A program for reasoning on aircraft routes and profiles (author unknown).
A simplified clause annotator by M. Hermenegildo, R. Warren, and M. Muthukumar.
The Aquarius Prolog compiler, by P. Van Roy.
A machine learning program implementing Winston's incremental learning procedure, by S. Wrobel.
A sophisticated Boyer-Moore's theorem prover, apparently by H. Fujita, copyrighted by the Institute for New Generation Computer Technology.
A Boyer-Moore theorem prover written by E. Tick after the Lisp version by R. P. Gabriel.
A graphs search program by E. Tick.
A bridge modeling program.
The ``Browse'' program written by T. Dobry (with modifications by H. Touati) after the original LISP version by R. P. Gabriel.
A Prolog implementation of ROBDDs by P. Schachte.
The BUP system, a parser generator from Definite Clause Grammars by Y. Matsumoto.
A semi-automatic complexity analysis system for logic programs, by N.-W. Lin.
A natural deduction CG parser with semantics, by B. Carpenter.
ChaSen version 1.51, a Japanese morphological analysis system, by Y. Den, O. Imaichi, Y. Matsumoto, and T. Utsuro.
A famous query answering system by F. Pereira and D. H. D. Warren.
A parser for a set of English sentences taken from Chat80.
A program for the analysis of chemical reactions presented in O. Caprotti, RISC-CLP(R-Trees): RISC-CLP(Real) Handles Symbolic Functions, Proceedings of the International Symposium on Design and Implementation of Symbolic Computation Systems (DISCO'93), Springer-Verlag, 1993.
A Prolog chess program, originally the result of the Artificial Intelligence Project at the ``Computer-Club der RWTH Aachen'' (KI --- Gruppe 89/90), ported to standard Prolog by M. Ostermann.
A simple circuit simulator.
A machine learning program implementing Gennari's incremental concept formation algorithm, by J.-U. Kietz.
A program to compute counter-models to intuitionistic propositional formulae using a calculus without loop-checking, by L. Pinto and R. Dyckhoff (based on a paper by the same authors at the Symposia Gaussiana conference, Munich, 1993).
A scheduling program.
A program written by P. Van Roy for solving crypto-multiplication problems.
A cutting-stock program.
A program for semi-deciding the intersection of two solids in CSG representation.
The so called ``Cugini Utilities'', by J. Cugini.
Curry to INDY translator by E. Campos and M. Albert.
A program for tracing a finite state machine, by P. J. Hancox.
A collection of useful predicates for difference lists, from The Art of Prolog, by L. Sterling and E. Y. Shapiro, The MIT Press, 1986.
The generate and test version of a disjunctive scheduling program.
A program, from the CLP(R) 1.2 test-suite, to put boolean formulae in disjunctive normal form.
A (buggy version of a) data-flow analyzer for groundness employing Pos and some abstractions of it, by A. King.
A Prolog version by V. Patel of the famous Eliza program.
A natural language interface to the Unix file system written by D. Mazzoni.
A compiler and parser for flexible typed feature structure grammars, by M. Dahllof.
A compiler and parser for flexible typed feature structure grammars with a graphical interface, by M. Dahllof.
A simple genetic algorithm implemented in Prolog.
The Prolog to WAM compiler distributed with GNU Prolog 1.1.0., by D. Diaz.
A simple sentence parser.
An intuitionistic theorem prover by J. Otten.
A program by L. Zhuhai for solving linear multiple equations using Gauss method.
INDEX: an experimental system for inductive data engineering written by P. A. Flach. For more information, see ``Predicate Invention in Inductive % Data Engineering'', in Proc. ECML '93, P. Brazdil (ed.), LNAI 667, Springer Verlag.
Below follows an example session with INDEX, an experimental system for % inductive data engineering. INDEX was implemented by Peter A. Flach. % The system is described in the paper "Predicate Invention in Inductive % Data Engineering", in Proc. ECML '93, P. Brazdil (ed.), LNAI 667, % Springer Verlag.
A Syntax translator from INDY to Curry by S. Escobar.
A program to solve the ``Jugs'' puzzle, i.e., given two jugs of known capacities, you have to obtain a specified amount by filling jugs, emptying jugs, and pouring the contents of one jug into the other jug.
An alpha-beta procedure.
The ``Kilimanjaro'' Prolog compiler, by T. Lindgren.
A program to find a knight's tour on an n × n chessboard so that the knight visits each square exactly once, inspired by an heuristic given in Advanced Prolog by P. Ross.
A program from the CLP(R) 1.2 test-suite solving the Dirichlet problem for Laplace's equation using Leibman's five-point finite-difference approximation.
A theorem prover for propositional Dummett logic LC, i.e., intuitionistic logic plus (A → B) ∨ (B → A), written by R. Dyckhoff.
Version 3.4.7 of LDL, the Language Development Laboratory, copyrighted by the University of Rostock, Germany.
A tableau-based theorem prover for formulae in negation normal form by B. Beckert and J.Posegga.
A huge program for computational linguistics, LexGram version 0.9.2 by E. Koenig, which includes the entire CUF system version 2.31. The CUF system implements the Comprehensive Unification Formalism, a formalism for unification grammars that was developed within the ESPRIT project DYANA and extended within projects DYANA-2 (ESPRIT) and B5 (SFB 340) at the Institut für Maschinelle Sprachverarbeitung (IMS), Universität Stuttgart, who holds the copyright.
A program written by J. Andrews, with changes by W. Clocksin, for playing J. H. Conway's ``Game of Life''.
LILP (Lambda Inductive Logic Programming): a system for learning predicate definitions from positive-only examples by Z. Markov.
An old version of the ``Language INdependent Grammatical Error Reporter'', by J. Barchan and J. Wusteman.
A routine that solves an arbitrarily large system of linear equations, by G. Brenner.
A theorem prover for Multiplicative Linear Logic M?LL, i.e., multiplicative linear logic with positive `?' and negative `!', written by J. Otten.
LINUS, a system that allows the use of background knowledge in learning. It can be used to learn relations (i.e., as an ILP system) or to take into account background knowledge for propositional learning tasks. By N. Lavrac, S. Dzeroski, and M. Grobelnik.
An intuitionistic theorem prover using LWB syntax, by R. Dyckhoff. For more information see ``Contraction-free calculi for intuitionistic logic'' by the same author, appeared in the Journal of Symbolic Logic, 1992.
A linear logic theorem prover for SICStus Prolog by N. Tamura with TeX form output by E. Sugiyama.
Version 3.0.8 of the {log} interpreter by A. Dovier, E. Omodeo, C. Piazza, E. Pontelli, and G. Rossi.
The Lojban semantic analyzer by N. Nicholas.
A program to compute a list of all the minimal cycles in a directed graph, by R. Bagnara.
Full machinery for Lazy Partial Evaluation, by P. Clark and R. Holte.
Version 1.06 of LPTP, a Logic Program Theorem Prover by R. F. Staerk.
A tool for transforming logic programs by S. Renault.
The Markus system for the induction of Prolog programs, by M. Grobelnik.
A program implementing the game ``Mastermind'', rewritten by H. Koenig and T. Hoppe after code by M. H. van Emden Also in H. Coelho and J. C. Cotta, ``Prolog by Example'', Symbolic Computation, Springer-Verlag, Berlin, 1988).
A package for Multiway Decision Graphs (MDGs). MDGs represent and manipulate a subset of first-order logic formulas suitable for high-level hardware verification. Copyright by the University of Montreal.
The ``Metutor'' means-ends tutoring system by N. C. Rowe, instantiated over the ``firefighting tutor'' example application.
The ``mFOIL'' inductive logic programming system. It is based on Quinlan's ``FOIL'' and includes several techniques for handling imperfect (noisy) data. Written by S. Dzeroski.
An automatic partial evaluator for full Prolog, by D. Sahlin.
A program by B. Holmer implementing a rough approximation to the algorithm presented in E. S. Davidson, ``An Algorithm for NAND Decomposition Under Network Constraints'', IEEE Trans. Comp., vol. C-18, no. 12, Dec. 1969, p. 1098.
A neural network simulation program.
A program by D. Green to play an interactive game of noughts and crosses.
A program solving the $n$-body problem for star clusters by E. Tick.
A prehistoric version of CHINA, when it was written in Prolog.
A program from the CLP(R) 1.2 test-suite for the algebraic combinations of options transactions.
A benchmark program from D. H. D. Warren's thesis.
The ``Pappi'' tool for computational linguistics: the system can be used to define and test principle-based grammatical theories. Written by S. Fong with help from several others.
A parser by R. Bagnara, based on Definite Clause Grammars, for both an imperative and a functional higher-order languages.
The peephole optimizer of SB-Prolog 3.0.
A groundness data-flow analyzer for Prolog, using the Pos domain implemented by means of ROBDDs, by P. Schachte.
A self-applicable partial evaluator for the flow-chart language described in Chapter 4 of Partial Evaluation and Automatic Program Generation, by N. D. Jones, C. K. Gomard, and P. Sestoft, Prentice-Hall, 1993.
A program written by W. Older to solve a particular mathematical problem.
A version of PiZA: Prolog Z Animator by M. A. Hewitt.
A version of PLAI, the UPM-CLIP framework and environment for developing global analyzers based on abstract interpretation.
A text-dictionary matcher by A. Michiels.
A famous planning program by D. H. D. Warren.
A program to symbolically raise polynomials to integer powers, written by R. Haygood and R. McGeer after the Lisp version by R. P. Gabriel.
A program for solving equations taken from Chapter 23 of The Art of Prolog, by L. Sterling and E. Y. Shapiro, The MIT Press, 1986.
A version of the houses (zebra) program as presented in Constraint Satisfaction in Logic Programming, by P. Van Hentenryck, The MIT Press, 1989.
A data-flow analyzer for groundness employing a quotient of Sharing, by A. King.
A Prolog reader by D. H. D. Warren and R. O'Keefe, with modifications by A. Mycroft.
A graph reducer for T-combinators by P. Van Roy.
The ``Regular Approximation Tool'' by J. Gallagher.
A program solving a combinatorial puzzle involving rings joined with strings of various lengths to be placed on a pegboard on which a number of pegs are set.
A Rubik's cube solver written by D. Merritt as described in Building Expert Systems in Prolog, Springer-Verlag, 1989.
The SAX natural language parsing system by Y. Matsumoto and Y. Den.
A program written by S. Diehl for computing the strongly-connected components of a graph.
A data-flow analyzer that represents aliasing.
A program for playing with semigroups, by M. Carlsson.
A simulator for OR-parallel Prolog, by K. Shen.
An algebra simplifier by L. Zhuhai.
A simple data-flow analyzer written by P. Van Roy.
An interpreter, based on the SOS approach, for both an imperative and a functional higher-order languages, written by R. Bagnara.
The SP system, comprises a collection of programs for performing specialization (partial evaluation), some other program transformations, and some program analyses. Copyright by J. Gallagher.
A CLP(Q) program by A. Colmerauer that solves the difficult problem of tiling a rectangle with squares of all-different, a priori unknown sizes. The CLP(Q) translation of the original Prolog-III program, appeared in A. Colmerauer, An Introduction to Prolog III, Communications of the ACM, 33(7), 69-90, 1990, is due to C. Holzbaur.
A transformation system for functional logic programs based on needed narrowing.
A program of tic-tac-toe by a student of A. K. Bansal.
A program to draw compound terms as trees, by T. Grech.
An automated prover for first-order classical predicate logic based on a modified version of Gentzen's sequent calculus LK, by K. Sakai.
A program to find near-optimal solutions to the Traveling Salesman Problem.
A compiler code generator for unification written by P. Van Roy.
A VHDL-AMS Parser and Pretty-Printer in Prolog. The original VHDL-87 parser written in Quintus Prolog is due to P. B. Reintjes (then at Microelectronics Center of North Carolina, Reasearch Triangle Park). This parser was revised to conform to the IEEE 1076-1993 standard of VHDL and ported to SWI-Prolog by K. Thirunarayan. Now it has been further revised to meet IEEE 1076.1 standard of VHDL (also called VHDL-AMS) and can be downloaded from
A very simple top-down parser that allows the choice of depth-first or breadth-first control, by P. Hancox.
The famous ``Warplan'' robot problem solver written by D. H. D. Warren.
Yet another program to solve the ``SEND + MORE = MONEY'' puzzle.
Yet another version, written by Santos-Costa, of the houses (zebra) program.
© The China
Development Group

Home | Systems | Documentation | Experiments | Benchmarks | Projects | People | Links | About