Scryer Prolog - modern Prolog implementation in pure Rust

Scryer Prolog aims to become to ISO Prolog what GHC is to Haskell: an open-source industrial strength production environment that is also a testbed for bleeding-edge research in logic and constraint programming, which is itself written in a high-level language. It is being actively developed with feedback from the Prolog community, in particular, the author of The Power of Prolog book (it is open source by the way), and people who helped to develop the ISO standard itself. Any contributions are welcome.

9 Likes

Hi, I was looking at your project before and I am wondering if you consider cut-off the "logic engine" part from it, so maybe it would be possible to create programming-in-logic lib crate on top of it - something like chalk, but maybe more general.

1 Like

It is not my project, I just contributed a couple times, but the core priority to make it pass all ISO tests now, along with JIT. Afterwards, it indeed might be interesting to split the implementation into a few separate crates. For example, the parser is already a separate crate. Someone already asked about possibility to use it as a library.

As someone who used to teach university courses on Prolog back in 1980, I like this initiative.
Question: given Prolog's declarative nature, are you intending to apply async-await, at least in the simplest case, to independent conjunct subgoals? This would imho make more interesting reason to choose Rust for this right now.

2 Likes

Good question, please open a feature suggestion for that.