PL/0 compiler including VM written in JavaScript