Learning about compilers by writing one in javascript.