An addendum to my previous message: Some preliminary benchmarks indicate that plc is a vastly faster execution platform than tried-and-tested (and optimized) Prolog engines such as SWI Prolog and Sicstus Prolog (although it currently only supports a restricted language). For my example program, it is almost 12x faster than SWI and 3.7x faster than Sicstus. Some details: solving the win-predicate in the attached Prolog-file causes a search in the space of all six-letter words (i.e. 26^6 strings); it reports those words that are "prolog". I collected the following timings on my computer (Intel Core 2 Duo, MacOS X 10.4.9): SWI-Prolog (Multi-threaded, Version 5.6.10): $ time swipl -s prolog.pl -g true -t "win(A,B,C,D,E,F),write ([A,B,C,D,E,F]),nl,fail" % prolog.pl compiled 0.00 sec, 4,280 bytes [p, r, o, l, o, g] real 0m59.065s user 0m58.845s sys 0m0.073s SICStus 4.0.1: $ time ~/sicstus/bin/sicstus -f -l prolog.pl --goal "win (A,B,C,D,E,F),write([A,B,C,D,E,F]),nl,fail;halt." % compiling /Users/bruno/my_svn/plc/prolog.pl... % compiled /Users/bruno/my_svn/plc/prolog.pl in module user, 0 msec 2312 bytes SICStus 4.0.1 (i386-darwin-8.9.1): Tue May 15 14:53:23 CEST 2007 Licensed to Bruno De Fraine [p,r,o,l,o,g] real 0m18.474s user 0m18.417s sys 0m0.038s plc and ocamlopt 3.09.3: $ time { make prolog.cmx; make driver.cmx; ocamlopt -o driver.opt prolog.cmx driver.cmx; ./driver.opt; } ocamlopt.opt -c -dtypes -pp 'camlp4 ./plc.cma pr_dump.cmo -impl' - impl prolog.pl ocamlopt.opt -c -dtypes driver.ml prolog real 0m5.069s user 0m4.749s sys 0m0.191s Regards, Bruno