Programming language implementation work seems to be 10% interesting semantic work and 90% error checking against the possible malformed programs you might encounter.