A register-based virtual machine and byte-code compiler written in a single semester