Qoppa - a language to learn about Fexpr’s
Recently, I gave a talk at Fun Club Berlin about Fexpr’s. I had only recently heard about those and worked myself through a blogpost describing a minimal language, Qoppa, that uses only Fexpr’s and has no other sepcial forms. The author then built a library on top of Qoppa that implemented enough of Scheme to implement Qoppa on top of that again.
To do is to understand, so I implemented a Qoppa AST interpreter with Scheme syntax on top of PyPy, using the parser and much of the object model (as much as there is) from their Scheme implementation. You can find the code on GitHub, if you’re interested. I’m going to talk about my experiences with PyPy in a later post, so suffice it to say that the generated binary is reasonably fast, even though I haven’t really thought about optimizing anything.
So, if you’re interested in the What and Why of Fexprs, go read Keegan McAllister’s blogpost and look also at his Scheme implementation on GitHub. I described some of his explanations in my talk, and the screenshots of the “slides” I had are also available.