Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/julgitt/prolog-implementation-in-ocaml
Prolog parser, lexer and interpreter in Ocaml
https://github.com/julgitt/prolog-implementation-in-ocaml
backtracking functional-programming monads ocaml prolog prolog-implementation state-monad
Last synced: about 1 month ago
JSON representation
Prolog parser, lexer and interpreter in Ocaml
- Host: GitHub
- URL: https://github.com/julgitt/prolog-implementation-in-ocaml
- Owner: julgitt
- Created: 2024-02-04T16:05:21.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-02-22T12:01:18.000Z (9 months ago)
- Last Synced: 2024-10-12T11:05:10.787Z (about 1 month ago)
- Topics: backtracking, functional-programming, monads, ocaml, prolog, prolog-implementation, state-monad
- Language: OCaml
- Homepage:
- Size: 47.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Simple Prolog implementation in Ocaml
**Key Features:**
- Unification using Robinson's algorithm.
- Comprehensive support for syntax, semantics, and arithmetic operations.
- Reading the predicate base from a file
- Queries can be sent from the console.
- Implementation of backtracking with a state monad providing a search for multiple solutions.
---
**Required libraries:**- Dune
- Menhir
- Linenoise
---
**Manual Installation:**
```console
sudo apt install opam
opam init
opam install dune
opam install linenoise
opam install menhir
eval $(opam config env)
dune build
dune exec prolog
```
---
**Plans for the future development:**
- Support for Prolog lists
- Comparison operators
---
**Preview:**![image](https://github.com/julgitt/Prolog-Implementation-In-Ocaml/assets/95649808/106a20b1-e1bc-4f92-a540-263290df2533)