Coding and stuff

Qoppa - a language to learn about Fexpr's

by Tim Felgentreff ,

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.

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Germany License. Any source code included is, unless stated otherwise, licensed under a MIT License. This does not apply for comments (below).