Language implementation in 450 lines of JavaScript
jsfiddle.net