Lithium is an attempt at several things at once:
- An assembler for x86 CPUs, written in Clojure and using Clojure S-expressions as its input data. This part has been first announced in this blog post.
- A compiler for a toy Lisp-like language, using that assembler as a backend. The compiler is being written following the guidelines found in a paper "An Incremental Approach to Compiler Construction."
The purposes of Lithium are, first and foremost, to learn and to have fun.