-
C# Prolog by John Pool
-
Yield Prolog: This is probably the closest match to what I want. Cons: no unit tests (but can be added), lots of public static methods not thread-safe.
-
Lex+yacc and MS MPLex+MPPG rely on ‘actions’ that are language specific (C or C#). I want my DCG code to be portable.
-
Antlr
-
XSB. Some people have called it ‘the best…’ (find quote) Cons: not thread-safe (quote):
“Currently, only one query can be active at a time. I.e., one must completely finish processing one query (either by retrieving all the answers for it, or by issuing a call to xsb_close_query(), before trying to evaluate another.”
-
SWI-Prolog: lazy lists
Has grammars for a few languages, including English and Russian.