Due Date: Saturday, January 26 at 11:59pm via GitHub.

Revisions:

  1. (Jan 20) Program 2 description should refer to if statements and expression.

Introduction

In this assignment you will develop a familiarity with the syntax of the CSC488 Source language by writing several programs without the aid of a compiler. Carefully follow the grammar and notes from the Source language specification to ensure that your programs are syntactically correct. These programs do not need to actually compute anything useful, although you should be thinking ahead as to how you might use these samples as test cases for your compiler.

You must submit 5 programs:

  1. A program that uses all arithmetic, logical, comparison and Boolean operators (using both integer and Boolean types, where applicable)
  2. A program that uses both varieties of arrays and every form of if statement and expression.
  3. A program that uses all forms of loop building and loop exit constructs.
  4. A program that uses non-recursive functions and procedures, both with and without formal parameters.
  5. A program that uses recursive functions and procedures, both with and without formal parameters, including at least one nested procedure and at least one nested function declaration.

Name your source files prog1.488 through prog5.488.

Include a brief comment at the top of each file describing its contents, as well as the name(s) of who wrote it.

How to submit

Within your private team repository on GitHub, create a top-level directory a1 and commit your 5 .488 source files therein.

Include a README.md or README.txt in that directory containing your team member names, a one sentence summary of what you are submitting, and whether or not you are using any grace days (and if so, how many).

Push your commits to the master branch of your repository prior to the deadline. Whatever is the most recent commit as of the assignment deadline will be considered to be your teams' submission for the assignment. The master branch will be checked again 24, 48 and 72 hours after the deadline if you choose to submit late and use grace days. If you are using grace day(s), be sure to update your README file to reflect how many.