An exploration of stack programming languages. A new implementation of Joy
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Stackist: a stack-based programming language and runtime

Build Status

stackist is a series of experiments in building a stack-based programming language, starting with Manfred von Thun's Joy language.

What I have today:

  • A basic interpreter for an arithmetic language.
  • Literals
  • Operators
  • A basic stdandard library
  • Quotations
  • Most of the base combinators
  • concrete syntax finished and available via main.

What I'm working on next:

  • Aggregates
  • All combinators (primrec, linrec, binrec, fold, ifte)
  • Critical: verify that my stack semantics agree with von Thun's.
  • More stdlib (working down this list:
  • Named functions
  • I/O
  • stack operators (newstack, clear, stack, cons, swons, uncons, unswons)

Future directions:

  • Documenting a type system for Joy
  • Can we encode Joy with a fragment of System F? (rank-2?)
  • Type reconstructor applicable to all original Joy programs
  • Retargetable compiler
  • Compile to C
  • Compile to LLVM IR
  • Compile to Native code
  • Applying Linear types to Joy
  • Linear type reconstruction