It has many times. Nice, LISP-style example that was recently on HN:<p><a href="https:&#x2F;&#x2F;speakerdeck.com&#x2F;nineties&#x2F;creating-a-language-using-only-assembly-language" rel="nofollow">https:&#x2F;&#x2F;speakerdeck.com&#x2F;nineties&#x2F;creating-a-language-using-o...</a><p>Note: LISP&#x2F;Scheme interpreters and processors with plenty of detail (including source) can be found with Google. Many implemented before 1990. Will run on cheap FPGA&#x27;s or process nodes. Can take it all the way to hardware. ;)<p>The macro ASM can be built on something like P-code: an idealized, low-level machine easy to deploy on CISC and RISC architectures. A good example of how to bridge ASM and HLL&#x27;s is Hyde&#x27;s High Level Assembly:<p><a href="http:&#x2F;&#x2F;www.plantation-productions.com&#x2F;Webster&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.plantation-productions.com&#x2F;Webster&#x2F;</a><p>The HLL, for non-LISP audience, can be Oberon with aid of Wirth&#x27;s Compiler Construction book among other papers:<p><a href="http:&#x2F;&#x2F;www.ethoberon.ethz.ch&#x2F;WirthPubl&#x2F;CBEAll.pdf" rel="nofollow">http:&#x2F;&#x2F;www.ethoberon.ethz.ch&#x2F;WirthPubl&#x2F;CBEAll.pdf</a><p>So, many possibilities. People just gotta use them. Build a LISP w&#x2F; macros to build everything else still seems to be easiest strategy. Esp as one can reuse code from textbooks unlikely to be subverted. Wirth&#x27;s next best.