Adventures in compiler programming and language design.