summaryrefslogtreecommitdiff
path: root/sites/prolog.pmikkelsen.com
diff options
context:
space:
mode:
Diffstat (limited to 'sites/prolog.pmikkelsen.com')
-rw-r--r--sites/prolog.pmikkelsen.com/index.md63
1 files changed, 61 insertions, 2 deletions
diff --git a/sites/prolog.pmikkelsen.com/index.md b/sites/prolog.pmikkelsen.com/index.md
index 9746a85..4f21c8d 100644
--- a/sites/prolog.pmikkelsen.com/index.md
+++ b/sites/prolog.pmikkelsen.com/index.md
@@ -1,3 +1,62 @@
-# Prolog woo
+# Introduction
-Heyo prolog fans \ No newline at end of file
+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.
+
+# Status
+
+At this moment the system works OK but it has very few builtin predicates
+and much of when 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).