&gt; I chose to compile Earl Grey to JavaScript<p>Some programming languages generate code much deeper down the abstraction stack, e.g. Haskell generating machine code, whereas others generate code to a much shallower depth, e.g. most languages generating JavaScript. A language generating lisp code from some syntax could even be shunting code <i>up</i> the abstraction stack.<p>How deep does the generated code need to be down the stack for some syntax to earn the name &quot;programming language&quot;?