CS536-F21 Intro to PLs and Compilers

Follow the instructions below carefully to submit your work.

Programming Requirements

All programs must be written in Java. Accounts are provided on the CS lab computers. You may work on other machines (e.g., your own computer), but you will need to use the following tools for programming assignments 2 through 6:

  • make

  • JLex

  • Java CUP

  • Spim

You may be able to download these tools onto your own machines, but be aware that your code must also run on the CS Linux machines. If there are differences between the tools that you download and the versions on the Linux machines, this may cause differences in the way your code runs.


All students will work alone on the first programming assignment and on every.

Computer Science and Computer Engineering graduate students must work alone on the remaining programming assignments. Graduate students from other departments, special students, and undergraduates have the option of working in pairs. Only one partner submits the program files, but both partners must submit and hand in the assignment's documentation file.

Submitting someone else's work as your own is academic misconduct and will be dealt with in accordance with the University Student Academic Misconduct Policy.

Hand-in Instructions

All assignments must be handed in through Canvas. For each assignment, navigate to the folder designated for that homework and upload your submission file. Programming assignments must be submitted as one zip file named lastname.firstname.Pn.zip following a similar naming convention. All programming assignments must include a PDF file (named lastname.firstname.Pn.pdf) documenting how to invoke your program, your assumptions (if any), and anything else you would like us to know. If you are working in a pair, have only one member submit the program, but both must submit the documentation file separately. If the assignment asks for any non-code answers, they should be included in this file as well.