Calculating compilers by Nicholas Meyer