scryer-prolog
shen-elisp | scryer-prolog | |
---|---|---|
1 | 42 | |
125 | 1,901 | |
- | - | |
0.0 | 9.7 | |
about 2 months ago | 12 days ago | |
Emacs Lisp | Rust | |
- | BSD 3-clause "New" or "Revised" 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.
shen-elisp
-
The Shen Programming Language
Shen is a very unique language, and one of the ways in which it is unique is that so much of its marketing, information, etc is non-obvious, and less accessible than you might want.
I think the main thing that I find compelling about shen is its type system, especially its sequent calculus system (for defining types in a way that would not be possible for most languages).
The other thing about it that is compelling is how portable it is. the main language is implemented in a simple kernel language; someone who wanted to port the language to a new environment would need to implement a small (relatively) set of primitives, and then you can run the entire shen environment on top of it.
Its worth looking into, however I do caution that it has plenty of rough edges etc.
For me personally I think of it as an inspiration for programming languages I wish to develop someday. Additionally, if you ever worked in a certain environment and really dislike that the language is a bit weak, shen might be something you could port to that language and use. For example, I recently updated https://github.com/deech/shen-elisp so that some of its rough edges were a bit smoothed down and should be more usable; I haven't actually written any shen yet that runs in emacs. That's still a ways away.
scryer-prolog
-
The Shen Programming Language
thank you! the scryer community deserves much of the credit too. everyone is welcome and encouraged to join us at https://github.com/mthom/scryer-prolog! some exciting plans in the pipe
- Appreciating Clpz_t/2
- Advent of Code 2023 is nigh
- Scryer Prolog version 0.9.3 is out
- Announcing Basic WebAssembly support in Scryer Prolog
- Basic WebAssembly Support in Scryer Prolog
- Scryer-Prolog 0.9.2
- Release v1.1.0 of PostgreSQL-Prolog
-
Djot is a light markup syntax
Djot is the markup syntax that is used for the documentation of Scryer Prolog, using a parser written in Prolog:
https://github.com/aarroyoc/djota
It works well so far. One of the few limitations I noticed so far pertains to the formatting of tables. For instance, consider the table used in library(format) to describe control sequences:
https://github.com/mthom/scryer-prolog/blob/b0566e41503a6c8d...
It contains several entries that span multiple lines, yet are meant to denote only a single row of the table, such as:
% | `~Nr` | where N is an integer between 2 and 36: format the |
- The First Annual Scryer Prolog Meetup
What are some alternatives?
swipl-devel - SWI-Prolog Main development repository
logica - Logica is a logic programming language that compiles to SQL. It runs on Google BigQuery, PostgreSQL and SQLite.
differential-datalog - DDlog is a programming language for incremental computation. It is well suited for writing programs that continuously update their output in response to input changes. A DDlog programmer does not write incremental algorithms; instead they specify the desired input-output mapping in a declarative manner.
materialize - The data warehouse for operational workloads.
tau-prolog - An open source Prolog interpreter in JavaScript
prolog - The only reasonable scripting engine for Go.
otp - Erlang/OTP
egglog0 - Datalog + Egg = Good
tauri - Build smaller, faster, and more secure desktop applications with a web frontend.
polonius - Defines the Rust borrow checker.
packages-http - The SWI-Prolog HTTP server and client libraries
clickhouse-rs - Asynchronous ClickHouse client library for Rust programming language.