A compiler for WHILE - as partial fulfilment of requirements for SWEN 430 (Compiler Engineering)