Kind
wat-js
Kind | wat-js | |
---|---|---|
4 | 4 | |
3,452 | 257 | |
1.4% | - | |
4.8 | 10.0 | |
17 days ago | over 6 years ago | |
Rust | JavaScript | |
MIT License | 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.
Kind
- Kind: A lambda-calculus based pure programming language
-
Can one use lambda calculus as an IR?
Depending on what you mean by practical it already is! https://github.com/HigherOrderCO/Kind HVM was developed to be an efficient backend for the Kind language from the same folks
-
First (1/5) steps with HVM, A massively parallel, optimal functional runtime in Rust
One thing that you can use right now is Kind, a functional language and proof assistant.
-
Brett Slatkin: Why am I building a new functional programming language?
Hey, that's pretty cool! The lang that targets this runtime is https://github.com/HigherOrderCO/Kind
wat-js
-
C Is Not a Low-level Language – Your computer is not a fast PDP-11
Well Forth is possibly the most minimal VM over a platform, as evidenced by openfirmware.
It does have problems scaling though, in that if you've seen one Forth, you've seen one Forth ie. The variations required to fit a platform make them semi-incompatible.
That's not to say that a more lispy Forth wouldn't be useful though, in that a concatenative syntax allows us to pass custom datastructures around like APL, and CPS (delimited continuations with lexically scoped dynamic binding would come from the lisp side (see https://github.com/manuel/wat-js).
Memory management in Forth can handle multiple memory types eg. https://flashforth.com/ so adding something like ref counting (https://github.com/zigalenarcic/minilisp/blob/main/main.c) to handle the dynamic list side of things might mesh well.
In any case, if you're looking for a self hosting lisp that runs on bare metal, https://github.com/attila-lendvai/maru has been out for a few years.
- The Workflow Pattern
-
Brett Slatkin: Why am I building a new functional programming language?
https://github.com/manuel/wat-js
If you have delimited continuations then you can construct coroutines/threads/await/async, promises etc.
I guess that this might be suitable for many scenarios thanks to nodejs, but the runtimes it relies on are not exactly small.
- The Mysteries of Lisp (2015)
What are some alternatives?
Functional-Benchmarks - Collection of benchmarks of functional programming languages and proof assistants.
minilisp - A small lisp interpreter with reference counting memory management aimed at interactive game development
HVM - A massively parallel, optimal functional runtime in Rust
cc65 - cc65 - a freeware C compiler for 6502 based systems
meta-cedille - Minimalistic dependent type theory with syntactic metaprogramming
conductor - Conductor is a microservices orchestration engine.
julia - The Julia Programming Language
wekan-node20 - Database connect test with Node.js 20, Bun and Deno. Creating single executeables with Bun and Deno.
ada-spark-rfcs - Platform to submit RFCs for the Ada & SPARK languages
ECMAScript 6 compatibility table - ECMAScript compatibility tables
rayon - Rayon: A data parallelism library for Rust
Rx.NET - The Reactive Extensions for .NET