Translating programs in a very simple canonical imperative language, known in the literature as WHILE, or sometimes IMP, into RISC-V assembly code. The resulting assembly code will be linked with a main program, written in C and compiled with gcc, and then run on either the SiFive board (risc-machine.cs.unm.edu) or a RISC-V emulator.