How to implement a programming language

I wrote a tutorial on how to implement a programming language in JavaScript. It got quite
involved, and it took embarrassingly long to write. I wanted to write only about parsing, after a discussion with my dad about this
problem; but once I had a parser I thought I'd add in a simple interpreter and once that was in place, I thought
I'd turn it into continuation-passing style to show how we can workaround the lack of tail call optimization in
JavaScript. But this opened the opportunity to talk about continuations. And of course, it was too slow so I thought
I'd discuss compiling as well.

Long story short: I describe how to implement a non-trivial programming language. We get to a language that has
decent performance, can interface easily with JavaScript and can offer first class continuations. To hell with the
callback hell!

Hi Mihai, I'm wondering if iyou could do a series or posts to go through implementing the same programming language, but using LISP to , interpret, parse etc...
That would be an interesting comparison to see how the same language would be implemented using different both languages..

I don't have the time for that, I'm afraid… However what I did work on is writing a Lisp → JS compiler, based on the code described in this article (with many fixes + additional Lisp parser). It's functional, but there are no demos and no docs, and I worked on it rather scarcely. Hope to publish it some time soon.

The method your using was first introduced (to my knowledge) by Jack Crenshaw in his "Lets build a compiler" series (http://compilers.iecc.com/crenshaw/). It does make compiler development a piece of cake, and, at the end of the day, what you have built is a compiler.
Nice work by the way, would be interesting to see your language released for use and see what happens with it.