Quark

2015

Quark is a little toy stack based programming language with a focus on minimalism and flexibility. The language shares the concatenative paradigm with Factor and Joy, borrows pattern matching and symbols from Erlang, and has a syntax that is completely homoiconic like a Lisp. One of the objectives I had when designing Quark was to explore the limits of what could be done with a language built around an extremely simple core. Quark only has 22 built-in functions, from which the rest of the standard library is built (even seemingly essential facilities such as the “if” function are built out of simpler BIFs).

Quark is a language for recreational programming. It doesn’t attempt to solve any particular problem, instead Quark optimizes for code beauty. You won’t get better performance, enhanced readability, or type checked safety by using Quark. However Quark allows for the specification of computation in a compact and highly elegant manner.


Quark was the first programming language I designed and built (the naïvety of certain bits of the code-base makes this fairly evident). The original implementation is written in Haskell, and a more buggy half-baked Ruby implementation is also available. Both interpreters are based on a simple AST walking design, and are consequentially quite slow. I stopped working on Quark many years ago, though I still consider it a wonderful little toy language.


The main Quark website

The Haskell interpreter source code

The language guide

For a taste of Quark, check out its prelude