Table of Contents >> Projects

Lmao Programming Language


This project is the spritual successor to the EcksDee programming language. While EcksDee was fun to make, I hit several bottlenecks in performance with Haskell that prompted the switch.

Unlike EcksDee, Lmao uses Rust as its base. Rust is used for both interpretation as well as compilation (more like transpilation) of Lmao. For interpretation, it builds out an AST of Lmao and then runs the program in one go. The interpreter can be run on a .lmao file, fed a program from stdin, or run directly as a REPL for quicker access. Rust's work of compiling it is brute force but it does work. It translates Lmao code into an AST, then generates Rust code equivalent to the AST before having rustc handle the compilation.

The language of Lmao itself is a postfix notation language inspired by Forth with notable deviations into its own style. It works on the idea that everything is an operand or operator that changes the state of the program. It's a fun little language that has done some rather neat things.

Below is a link to the full GitHub page with much more in-depth documentation as well as the source code.

Full GitHub Page