I love how he has chosen GPLv3 considering this code is never going to be reused with different autorship
A lightweight Lisp interpreter in Malbolge
11–20 of 22 posts
Re: A lightweight Lisp interpreter in Malbolge
#12Re: A lightweight Lisp interpreter in Malbolge
#13Some rather full featured LISP interpreter has already been implemented in 163654 bits (under 20KB) of binary lambda calculus [1] (previous HN discussion at [2]). Wouldn't it be far simpler to implement binary lambda calculus in Malbolge and obtain a LISP interpreter running on Malbolge that way? [1] https://woodrush.github.io/blog/lambdalisp.html [2] https://news.ycombinator.com/item?id=32879848
bCBA@?>====
I'd love to hear about the tools used to construct this monster of code. My hat off to this programming wizard!
Btw, it's shocking to see how much better bzip3 by this same author [3] compresses than bzip2: 46M blc.mb
1.6M blc.mb.bz2
1004K blc.mb.bz3
[1] https://palaiologos.rocks/about/Re: A lightweight Lisp interpreter in Malbolge
#14Some rather full featured LISP interpreter has already been implemented in 163654 bits (under 20KB) of binary lambda calculus [1] (previous HN discussion at [2]). Wouldn't it be far simpler to implement binary lambda calculus in Malbolge and obtain a LISP interpreter running on Malbolge that way? [1] https://woodrush.github.io/blog/lambdalisp.html [2] https://news.ycombinator.com/item?id=32879848
Perusing the author's about page [1], I see that after making malbolge-lisp in 2020-2021, in 2022 she made blc-mb [2], a Binary Lambda Calculus evaluation engine written in Malbolge. So now the simpler implementation path is available too. But the BLC engine is still a whopping 46MB! This is what the first 320 bytes of its Malbolge code looks like: bCBA@?>= = = = I'd love to hear about the tools used to construct thi…
As for the compression: probably an artifact of a bigger block size and a closer-to-optimal entropy coding stage in bzip3 (simple model + binary arithmetic coding; fast suffix sorting due to research of Ilya Grebnov) vs bzip2's suboptimal implementation of what could have been Package-Merge that currently assigns excessively long Huffman codes (as I discovered while doing research for my data compression book); also probably the RLEs everywhere that Seward considers a mistake, small BWT blocks, etc. You could try the tool https://pastebin.com/6DUKs4q9, which eliminates the redundancy associated with the Malbolge encoding (which bzip3 kind of catches on without any preprocessing, while bzip2 not entirely) and drastically improves performance of all other compressors:
% ./a d blc.n
% bzip3 -vfb50 blc.n
blc.n: 48175489 -> 647179 bytes, 1.34%, 0.11 bpb
% bzip3 -vfb50 blc.mb
blc.mb: 48175489 -> 1025582 bytes, 2.13%, 0.17 bpbRe: A lightweight Lisp interpreter in Malbolge
#15Re: A lightweight Lisp interpreter in Malbolge
#16Earlier quoted context omitted.
Perusing the author's about page [1], I see that after making malbolge-lisp in 2020-2021, in 2022 she made blc-mb [2], a Binary Lambda Calculus evaluation engine written in Malbolge. So now the simpler implementation path is available too. But the BLC engine is still a whopping 46MB! This is what the first 320 bytes of its Malbolge code looks like: bCBA@?>= = = = I'd love to hear about the tools used to construct thi…
Thank you for the kind comments! Unfortunately, the BLC interpreter is much slower than MalbolgeLISP, even when using fast20 (with a lot of optimisations coined by dzaima). My memory is a bit hazy, but one of the main roadblocks that made BLC barely feasible was the (comparably...) large ROM that it requires. Executing simple instructions in Malbolge generally incurs similar kind of latency as the more complicated on…
Re: A lightweight Lisp interpreter in Malbolge
#17All you startups hanging out on here, shouldn't you be hiring her?
Re: A lightweight Lisp interpreter in Malbolge
#18If one takes the "19yo" claim at face value, this is a prodigious feat.
Re: A lightweight Lisp interpreter in Malbolge
#19If one takes the "19yo" claim at face value, this is a prodigious feat.
Now, 19 years of professional software engineering later, I don't think my actual code-outputting skills are much better than they were at 19 - all I have now is more knowledge about the process and human side of software engineering and some extra esoteric facts and histories stored in my head. In fact, maybe I'm even worse, because I wouldn't have the time or patience to actually sit down and write something like that in befunge any more, because my priorities have changed.