elvm
lambdalisp
elvm | lambdalisp | |
---|---|---|
10 | 3 | |
1,056 | 219 | |
- | - | |
0.0 | 4.4 | |
about 1 month ago | about 1 year ago | |
C | Common Lisp | |
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.
elvm
-
Compilers for the Future
ELVM lacks a lot of features, but serve the purpose of simplifying the creation of new frontends.
-
Show HN: Lambda-8cc – An x86 C compiler written in untyped lambda calculus
How does it work? Is it translating the C source code of the 8cc C compiler to lambda calculus?
So like C -> ELVM IR -> lambda calculus?
https://github.com/shinh/elvm
If so, it seems like 8cc is doing most of the heavy lifting
- Portable TUI programs
-
awkcc: awk-to-C transcompiler (1988, 2011)
Interested parties should also check out awka (https://github.com/noyesno/awka) and ELVM (which can compile C into awk or sed, among various other things) (https://github.com/shinh/elvm)
-
Big list of ASCII games you can play in the terminal
Oh yeah, there's a compiler that can compile C to sed.
-
Design and Implementation of a 256-Core BrainFuck Computer [pdf]
Would be interesting to have some small C program such as info-zip compiled to bf via ELVM [1] and do a speed comparison.
https://github.com/shinh/elvm
- A Simulator of a Universal Turing Machine
-
Lisp in an “impossible” language, the most complex malbolge program to date
A C compiler that can output Malbolge (among many other esolangs) can be found at https://github.com/shinh/elvm - dunno if it has any relation to this work.
Note that the Malbolge (or rather LMAO/HeLL) backend was added back in July 2019, so I'm not so sure about their claim that "It's as of 2020 and 2021, the most advanced, usable Malbolge program ever created."
- ELVM – Similar to LLVM but Dedicated to Esoteric Languages
-
The International Obfuscated C Code Contest 2020 winners
You are looking for ELVM: https://github.com/shinh/elvm/
lambdalisp
-
Discussion Thread
source code here, i am not genius enough to understand the code-calculus conversion
- Lambdalisp: A Lisp interpreter written in untyped lambda calculus
-
Show HN: Lambda-8cc – An x86 C compiler written in untyped lambda calculus
I actually mentioned your hint file in details.md. Quite a roundabout way to decode its secrets!
I too suspect that writing in lambda's native functional style could save a lot of space. Compiling lisp.c from the ELVM repository generates a code much longer than LambdaLisp [1], which empirically shows that well I believe.
As for the pages of PDF, in mathematical terms, since any variable encodes to weight 1, I believe it would be something close to an encoding that degenerates all De Bruijn indices to 1, or in other words, one that only tries to weigh (or gives larger weight to) the complexity of abstraction depths and applications. Since that erases information about the variable I would guess it's not a universal method for weighing lambda sizes.
In this particular case for LambdaVM programs however, since the memory initialization clause nor the instruction clause never increases the maximum De Bruijn index value, I believe both the BLC size and "lambda page size" approximately grows linearly with the number of instructions, so I thought it would serve as an approximately-off-by-a-factor metric for weighing its size.
As for the ELVM lambda calculus back-end, I'll be sending the pull request very soon!
[1] A Lisp interpreter implemented in lambda calculus: https://github.com/woodrush/lambdalisp
What are some alternatives?
malbolge-lisp - A lightweight (350MB) Lisp interpreter in Malbolge Unshackled, often dubbed the hardest turing complete programming language.
meta-cedille - Minimalistic dependent type theory with syntactic metaprogramming
xenocryst - A brainfuck interpreter written for memcpy(). Read the paper (or source) for more details.
trivial-toplevel-prompt - Portability library to customize CL implementations' REPL prompt.
printbf - Brainfuck interpreter inside printf
lambdacraft - Common Lisp DSL for building untyped lambda calculus expressions
awka - Revive awka - Awk to C Compiler
AIT - Algorithmic Information Theory, using Binary Lambda Calculus
asmbf - The only true brainfuck-targetting assembler.
gocket - 💼 CLI / TUI for Pocket
devdash - :bento: Highly Configurable Terminal Dashboard for Developers and Creators
lambda-calculus-devkit - A collection of lambda calculus interpreters and development tools