elpi
ciao
Our great sponsors
elpi | ciao | |
---|---|---|
4 | 3 | |
260 | 243 | |
1.9% | 4.1% | |
8.5 | 8.8 | |
3 days ago | about 2 months ago | |
Prolog | Prolog | |
GNU Lesser General Public License v3.0 only | GNU Lesser General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
elpi
-
Prototyping a Functional Language using Higher-Order Logic Programming
Also relevant, Elpi, which is used as an embedded lambda-Prolog inside Coq for metaprogramming.
-
Julia is missing 'pycall' for Rust
While elpi lambda prolog is a lot nicer feature-wise (e.g. it offers higher logic subsets) and also includes simple constraints, Scyer prolog is faster and includes more features.
-
Are there any OS projects of any substantial size at all that have been written in λProlog?
I've tried looking but can't find any besides the implementation repos themselves; specifically ELPI and Teyjus
- Would a type system be superfluous in Prolog?
ciao
- PHP: Prolog Home Page
-
An embeddable Prolog scripting language for Go
Some Prolog systems (like Ciao Prolog https://github.com/ciao-lang/ciao/blob/master/core/lib/forei...) implement bidirectional foreign interfaces. Once you have C bindings it is easy to write bindings from Rust, C++, or any other language (that can interoperate with C). I give here some details about Ciao because this is the system I know better but it should be similar for other popular Prolog implementations.
The tradeoffs depend on the complexity of the Prolog code and your needs for performance and features: pure LP, Prolog (search+unification+cut), garbage collection, dynamic database updates, constraint domains, etc. The Ciao Prolog engine is around 300-400KB. Adding a few libraries, compiler, etc. it goes to 2MB. Naive Prolog systems can be one order of magnitude smaller at the cost of sacrificing ISO compatibility, performance, etc. Note that "performance" can be very misleading. Some Prolog programs may run particularly fast in some Prolog system and very badly in others.
- Keeping POWER relevant in the open source world
What are some alternatives?
clpz - Constraint Logic Programming over Integers
prolog - The only reasonable scripting engine for Go.
fastcode - A unique blend of C, Java, and Python tailored for those who desire a simple yet powerful programming language.
Prolog-to-List-Prolog - Converts Prolog algorithms to List Prolog algorithms
jlrs - Julia bindings for Rust
trealla-js - Trealla Prolog for the web
teyjus - An efficient implementation of the higher-order logic programming language Lambda Prolog
go - Trealla Prolog embedded in Go using WASM
scryer-prolog - A modern Prolog implementation written mostly in Rust.
librealsense - Intel® RealSense™ SDK
php - Prolog Home Page
Gleemin - A Magic: the Gathering™ expert system