Skip to content

MarcelGarus/orchard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

799 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Orchard

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/src/vm_interpreter.zig contains the core interpreter.
    vm/src/vm_x86_64.zig contains a JIT compiler.
  • Sloe (Small Lisp Of Expressions): A Lisp that is very small, and therefore easy to implement.
    vm/src/sloe_compiler.zig contains a Sloe compiler written in Zig.
    vm/src/code.sloe contains Sloe code.
  • Olive (Optimizable Lisp Implementing Various Expressions): A Lisp where the focus is to be easy to optimize. It has no first-class functions and no pre-compiled instruction-blobs – just a few builtin operations and first-class functions that call each other.
    vm/src/code.sloe contains an Olive compiler written in Sloe. vm/src/code.olive contains Olive code, including an Olive compiler written in Olive.
  • Pear: A functional programming language that is basically just the untyped lambda calculus with Lisp syntax.
    pear/ contains Pear code.
  • Ground: A low-level stack-based byte code.
    ground/readme.md contains 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.md contains more info.
    grass/grass.grass contains 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.md contains more info.
    martinaise/plum contains a Plum compiler written in Martinaise, another programming language I created.
    plum/core contains the Plum standard library.

About

A playground for programming language ideas.

Topics

Resources

Stars

Watchers

Forks

Contributors