# Introduction This is the website for PProlog, a new prolog implementation written in C on and for plan 9 (9front specifically). Work started in december 2020 due to the author's need for a prolog system on 9front. The long term goal is to be compliant with the ISO standard but currently it is all just experimentation. # Features * A base system based on the WAM (Warren abstract machine) implemented by following the book [here](http://wambook.sourceforge.net/wambook.pdf). * Support for extended precision arithmetic via [mp(2)](http://man.9front.org/2/mp). * Basic support for definite clause grammars (DCGs). For now DCG's are translated by the parser into difference lists and they do not support everything one expects. * Lists. * Strings represented as list of char atoms. * The basic control predicates such as `,/2`, `;/2`, `->/2` and cut. * Full unicode support. # Status At this moment the system works OK but it has very few builtin predicates and much of what people expect from a working prolog system is still missing. The list of builtins as of January 13, 2021 is: * `is/2` * `halt/0` * `consult/1` * `write/1` * `read/1` * `call/n` * `fail/0` * `>/2` * `==/2` * `atom/1` * `integer/1` * `float/1` * `var/1` * `compound/1` * `term_variables/2` And the following predicates are implemented in the standard library: * `=/2` * `\=/2` * `reverse/2` * `samelength/2` * `append/3` * `member/2` * `select/3` * `length/2` * `nl/0` * `phrase/2` * `\+/2` * `false/0` * `true/0` * `repeat/0` * `once/1` * `,/2` * `;/2` * `->/2` * `=\=/2` and many more all listed [here](https://git.sr.ht/~pmikkelsen/pprolog/tree/master/item/stdlib.pl).