The project may be done in any programming language of your choice,
as long as it can be practically installed in the linux.student.cs
environment. If your language of choice cannot be installed,
you may have to choose an alternative language.
One of the goals of the course is for you to understand how compilers and compiler generation tools work, rather than relying on them as mysterious black boxes. Therefore, your compiler must use only code that you wrote or that is provided to you by the instructor. Your compiler may use machine-generated code, as long as the code that generated it was written by you or by the instructor. You may not use code obtained from elsewhere or code generated by code obtained from elsewhere; in particular, you may not use generators such as lex or yacc. You may not use external libraries obtained from elsewhere. You may use the standard library that comes as part of the programming language that you choose to use. However, you may not use any scanner or parser generator that may be included in the standard library of your language of choice. If you have any doubts about which code you may or may not use, please ask the instructor for clarification.
Each group must use git.uwaterloo.ca for version control, which uses the GitLab software. It is already configured with your WatIAM (Quest) userid, so you can begin using it just by logging in and adding your group members to your project (after they have also logged in for the first time). Your data is stored at the University of Waterloo in compliance with its privacy policy.
Do not post any of your code to any publicly readable repositories.
For all assignments other than this one, your submission must include a
log file git.log containing your group’s commit
history. The log file must be automatically generated by git log;
modifying the log file in any way will be considered a violation of
academic integrity. If you feel significant clarification of the commit history is needed,
briefly explain it in your report submission.
For assignment 0, do the following tasks: