The automatic generation of realistic compilers from high-level semantic descriptions