Hi! In this repository, I tinker with different programming language ideas. I explore languages with different language complexity vs. efficiency vs. ergonomics tradeoffs.
The most interesting bits:
- VM:
A virtual machine for a stack-based byte code that operates on a heap of immutable objects.
vm/contains the VM, written in Zig.
vm/vm_interpreter.zigcontains the core interpreter.
vm/vm_x86_64.zigcontains a JIT compiler. - Olive:
A low-level programming language that allows you to create objects and byte code in the Orchard VM.
vm/compiler_olive.zigcontains an Olive compiler written in Zig.
olive/contains Olive code. - Pear:
A functional programming language that is basically just the untyped lambda calculus with Lisp syntax.
vm/compiler_pear.zigcontains a Pear compiler written in Zig.
pear/contains Pear code. - Ground:
A low-level stack-based byte code.
ground/readme.mdcontains the specification.
I wrote a Ground interpreter in Zig, but that's private for now. - Grass (Ground Assembly):
An assembly language for crafting binary files.
grass/readme.mdcontains more info.
grass/grass.grasscontains a self-hosted Grass compiler that is not yet finished. - Plum (Programming Language Used by Marcel):
A high-level functional programming language with immutable data structures, pure functions, and garbage collection.
plum/readme.mdcontains more info.
martinaise/plumcontains a Plum compiler written in Martinaise, another programming language I created.
plum/corecontains the Plum standard library.