Do you have a problem? Write a compiler
To people saying that writing a compiler is almost always an overkill - that&#x27;s because you and author mean different things by the word &quot;compiler&quot;. Or, in other words, that&#x27;s because your intuition is based on the inflexible languages you&#x27;re working with.<p>It&#x27;s not an accident that the talk&#x2F;article is about Clojure[0]. A Lisp. In Lisp, &quot;writing a compiler&quot; is a fancier way of saying &quot;writing a possibly code-walking macro&quot;, which is still just a fancy way of saying &quot;writing a function that transforms a tree into another tree, and having it run compile-time on parsed program source as the input&quot;. 99% of the usual compiler work - tokenizing, building an AST, generating machine&#x2F;bytecode, optimizing - is handled for you by the host Lisp compiler. All the mechanics are there, and all you have to do is to add the brains you need.<p>--<p>[0] - Clojure itself actually makes this slightly more difficult than it looks, because of the decisions it made that makes the syntax slightly less obviously homoiconic.