Kind
thorin2
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
thorin2
- Can one use lambda calculus as an IR?
-
Is continuation passing style conversion still used as an intermediate language?
There are intermediate representations in actively maintained compilers that rely on CPS at least partly. Examples are SML/NJ (as described here) and Flambda 2 for OCaml. Moreover, there are quite a few recently proposed IRs that are based on CPS. This not only includes IRs for functional languages, like those proposed in Farvadin and Reppy 2020 or Quiring et al. 2021 for example, but also for more imperative languages, see, e.g., Jung et al. 2018 or Leißa et al. 2015 (also see Thorin 2).
What are some alternatives?
Functional-Benchmarks - Collection of benchmarks of functional programming languages and proof assistants.
JuCC - JuCC - Jadavpur University Compiler Compiler
HVM - A massively parallel, optimal functional runtime in Rust
vast - VAST is an experimental compiler pipeline designed for program analysis of C and C++. It provides a tower of IRs as MLIR dialects to choose the best fit representations for a program analysis or further program abstraction.
meta-cedille - Minimalistic dependent type theory with syntactic metaprogramming
julia - The Julia Programming Language
honey-potion - Writing eBPF programs with Elixir!
ada-spark-rfcs - Platform to submit RFCs for the Ada & SPARK languages
mewa - Compiler-compiler for writing compiler frontends with Lua
ECMAScript 6 compatibility table - ECMAScript compatibility tables
Penguin-Subtitle-Player - An open-source, cross-platform standalone subtitle player