Project 15

In the last project of this course, we build a translator from VM code to Hack assembly code.

The translator must take a command line argument for the name of a directory. It must read all .vm files in this directory, and finally create an .asm file (with the same name as the directory, but stored inside the directory).

More detailed instructions, many test inputs, and tips for testing are on the Nand2tetris project pages for project 7 and project 8.

You can use any of the following programming languages: Python, Java, Kotlin, Scala, C, C++. If you want to use a language not in this list, you need to get permission from me on Piazza first.

You can either submit a single source file or a zip file with all sources to our submission server.

Do not submit any executable files (no JVM .class files!). If compilation is nontrivial, you must include a Makefile.