ciao
expr
ciao | expr | |
---|---|---|
3 | 24 | |
249 | 4,802 | |
2.4% | - | |
8.8 | 0.0 | |
3 months ago | 6 months ago | |
Prolog | Go | |
GNU Lesser General Public License v3.0 only | MIT License |
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.
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
expr
-
Solving the Expression Problem in Go
Not diminishing the article at all, there's massive value I've gained from leveraging this runtime solution in multiple projects: https://github.com/antonmedv/expr
The language is easy enough for people to pick-up.
- Expr Release v1.15
- Expr v1.14 release: Go expression language
- Expr – expression language with type checker
-
FireScroll - The config database to deploy everywhere (now with conditional statements!)
Uses the [expr](https://github.com/antonmedv/expr) language to achieve this and I've been super happy with the results.
-
Library to analyze an arbitrary JSON string
I have been using expr (https://github.com/antonmedv/expr) to do something like this for a while. no complains so far.
-
[gcalc] A simple calculater in golang
If you wanted it to not require putting in the operation first and just accept string equations (without using something like https://github.com/antonmedv/expr) you could parse, tokenize and then process the input.
- Go Expression Language
- Polymode: Multiple Major Modes and How to Use SQL and Python in One Buffer
- Expr (Go expression language) releases v1.11
What are some alternatives?
prolog - The only reasonable scripting engine for Go.
govaluate - Arbitrary expression evaluation for golang
Prolog-to-List-Prolog - Converts Prolog algorithms to List Prolog algorithms
cel-go - Fast, portable, non-Turing complete expression evaluation with gradual typing (Go)
trealla-js - Trealla Prolog for the web
gval - Expression evaluation in golang
go - Trealla Prolog embedded in Go using WASM
grule-rule-engine - Rule engine implementation in Golang
librealsense - Intel® RealSense™ SDK
tengo - A fast script language for Go
php - Prolog Home Page
mosalat - a rule-engine with custom dsl for golang