nokolisp
AIT
Our great sponsors
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.
nokolisp
-
Nokolisp – Lisp interpreter and compiler from 1977-1988 for MSDOS
Code: https://github.com/timonoko/nokolisp
-
Show HN: Lisp with GC in 436 Bytes
My "compiler" was totally context-free and made in assembler. Which means that it compiles every instruction in complete vacuum and assumes stuff comes in AX and BX registers (with rest-pointer in CX, I think). And result in AX.
But this proved not to be a bad start at all. Once you understand the limitations of the "compiler", you can modify the macros accordingly. One of the feature of the compiler was that it assigned absolute memory places for variables, so you could stop wasting stack and do early assignments to temporary variables.
Unfortunately the source is quite incomprehensible now because of insane use of nested macros: https://github.com/timonoko/nokolisp
But the example given above works, no doubt about it:
> (setq test (ncompile '(cons 1 (cons 2 3))))
AIT
-
Ray Tracer in a Boot Sector
It is described in https://github.com/tromp/AIT/blob/master/fast_growing_and_co...
-
Does quantum theory imply the entire Universe is preordained?
A = λxλyλz. x z (y (λ_.z)), which is encoded as bit 0 (left branch), while bit 1 (right branch) encodes prefix application.
[1] https://github.com/tromp/AIT/blob/master/ait/allA.lam
-
Show HN: Lambda-8cc – An x86 C compiler written in untyped lambda calculus
I expect so, as the author is familiar with my tools [1] for doing these optimizations.
[1] https://github.com/tromp/AIT
-
Minimalism in Programming Language Design
Haskell is not far from being a layer of syntactic sugar on top of the lambda calculus.
For an example of a non-trivial program, see this binary lambda calculus self-interpreter: https://github.com/tromp/AIT/blob/master/uni.lam
- Lambda Calculus in 400 Bytes
- Show HN: Lisp with GC in 436 Bytes
-
A Busy Beaver champion derived from scratch
While Goodstein sequences do get really long quite fast, they're not that easy to code. This [1] binary lambda calculus program may be the shortest possible, but still takes 351 bits. Meanwhile, in a mere 215 bits, we can encode a Laver table [2] program that potentially grows so much faster than Goodstein, that it's not even provable in ZFC [3].
[1] https://github.com/tromp/AIT/blob/master/goodstein.lam
[2] https://github.com/tromp/AIT/blob/master/laver.lam
[3] https://codegolf.stackexchange.com/questions/79620/laver-tab...
What are some alternatives?
Bazel - a fast, scalable, multi-language and extensible build system
cosmopolitan - build-once run-anywhere c library
sectorlisp - Bootstrapping LISP in a Boot Sector
lambda-calculus-devkit - A collection of lambda calculus interpreters and development tools
blamscript - game scripting documentation for halo speedruns
elvm - EsoLangVM Compiler Infrastructure
OBNC - A Oberon-07 to C translator. Forked from http://miasap.se/obnc/
LjTools - LuaJIT 2.0 bytecode parser, viewer, assembler and test VM. Lua 5.1 parser, IDE and debugger.
Smalltalk - Parser, code model, interpreter and navigable browser for the original Xerox Smalltalk-80 v2 sources and virtual image file