{"repo":"mthom/scryer-prolog","free":true,"listed":false,"github":"https://github.com/mthom/scryer-prolog","clone":"git clone https://github.com/mthom/scryer-prolog.git","description":"A modern Prolog implementation written mostly in Rust.","language":"Rust","stars":2444,"topics":["rust","prolog","prolog-interpreter","prolog-implementation","iso-prolog-standard","prolog-programming-language"],"license":"BSD-3-Clause","category":"dev-tools","readme_excerpt":"Scryer Prolog 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. Scryer Prolog passes all tests of syntactic&nbsp;conformity, variable names/1 and dif/2 . The homepage of the project is: https://www.scryer.pl Phase 1 Produce an implementation of the Warren Abstract Machine in Rust, done according to the progression of languages in Warren's Abstract Machine: A Tutorial Reconstruction. Phase 1 has been completed in that Scryer Prolog implements in some form all of the WAM book, including lists, cuts, Debray allocation, first argument indexing, last call optimization and conjunctive queries. Phase 2 Extend Scryer Prolog to include the following, among other features: - [x] call/N as a built-in meta-predicate. - [x] ISO Prolog compliant throw/catch. - [x] Built-in and user-defined operators of all fixities, with custom associativity and precedence. - [x] Bignum, rational number and floating point arithmetic. - [x] Built-in control operators ( , , ; , - , etc.). - [x] A revised, not-terrible module system. - [x] Built-in predicates for list processing and top-level declarative control ( setup call cleanup/3 , call with inference limit/3 , etc.) - [x] Default representation of strings as lists of characters, using a packed internal representation. - [x] term expansion/2 and ","default_branch":null,"files":null,"tree":[],"storefront":"/r/mthom","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/mthom/scryer-prolog/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}