Implementing a Quick and Dirty Interpreter
So what is the quickest way to build a programming language interpreter? Embed another interpreter in your code!
As programmers we sometimes shy away from some great solutions to problems because we consider them inelegant. I think one of the reasons is because they don't demonstrate our prowess as a programmer. As I am finally starting to grow out of that phase of trying to prove my abilities in every program I write and realizing that working solutions are better than elegant ones, I find I am starting to consider solutions to problems I would never have previously.
A great example of this, is a recent programming language interpreter I had to build to demo for a potential customer. I had a very short amount of time, so what I did was embed a Lua interpreter in my own interpreter.
Lua is great for this kind of task, because it is designed to be embedded in C and C++ applications, and it is incredibly powerful. My interpreter would at load-time translate from my source language called Heron (a JavaScript like language designed for executing UML models) into Lua. All I needed was a parser front-end (I used my own C++ PEG parsing library YARD for this) and a wrapper library around the Lua primitives to give them Heron semantics.
If you are not familiar with Lua you should take a look at it (http://www.lua.org/). It is very stable and quite well known in the game development community. Lua reminds me a lot of JavaScript and Scheme in that the the basic semantics are very simple, yet provide sufficient expressiveness to model virtually any other language.
Perhaps you have some other neat hacks that worked surprisingly well, but are almost embarassed to share?

