I've been thinking about programming languages lately. Here's what I've come up with. A programming language can be said to be "fully bootstrapped in X" if it can compile itself to some other language (or even binary format) X while also being able to interpret itself at runtime. I argue that any language that can do such a thing is as close to ideal as possible.

So I'd like to try coming up with one that's fully bootstrapped in Javascript. I've finally got the tokenizer working (code here) and now I can move on to parsing. That part shouldn't be too hard except with the part of interpreting the parse trees. Concepts like "shift" and "reduce" come to mind but the truth is I'm a little hazy with how to approach it. Is there a "simple" approach to doing this? I don't care about speed at this point. Just something that works.