it's written in Emacs Lisp. I wrote an assembler for ARM and Thumb, the ISAs used on the GBA, inside of elisp. This lets me translate sexprs like "(mov r0 r1)" into the corresponding bytes of machine code. I then built a lot of stuff on top of the assembler to make it nicer to use, like symbol tables, helpers for doing conditionals and loops and functions, etc. It was a ton of fun!