How To Specify And Code Hause Machines