PL_0 compiler and code generator