a mips simulator built from first-principles using java