COMP4181/9181 Programming Project - Compiling an Embedded Array Language

The aim of this project is to build a backend for the embedded array language Accelerate. The project comes in two flavours: basic and advanced. To complete the course, it is sufficient to solve the basic project. However, those who enjoy a challenge can alternatively complete the advanced project and earn bonus marks.


The programming project should be implemented in pairs; hence, if you are eying the advanced project, make sure, your partner is up for it, too. The idea is to co-operate and not just to split the work. In particular, both students will receive the same marks for all project milestones. This is unless it turns out, at the end of the project, that one person has done significantly more work than the other. In this case, please provide a rough breakdown of who did how many percent of the work on which milestone. All source code will be under version control, and hence, individual code contributions will be easy to track.

Version control

The source code of Accelerate is available from GitHub at We will also use GitHub to maintain one repository per programming pair. Code submission for assessment will be by pushing appropriate commits to GitHub. For more information on GitHub, see


The project consists of the following four milestones (split into two strands).

Milestone 0 (8 Sep, 5 marks)

Install & use Accelerate and familiarise yourself with GitHub.

Milestone 1 (4 Oct, 10 marks)

Generate code for scalar expressions.

Milestone 2 (23 Oct, 10 marks + 5 OPTIONAL bonus marks)

Generate simple loops.

Milestone 3 (6 Nov, 15 marks + 5 OPTIONAL bonus marks)

Run Accelerate programs.

Submitting milestones

Push commits implementing the various milestones to your GitHub repository. Each milestone must be tagged (as specified in the milestone description).

Late submissions

For each milestone, the maximum possible mark is reduced by 20% for every day past the deadline. Submissions are expected by 23:55 of the due date, as given in the above list of milestones. For example, if Milestone 0 is submitted on 3 September, the maximum possible mark is 4 marks (as it is one day late). Submissions later than 4 days are not accepted.


You must strictly conform to the UNSW Plagiarism Policy and the CSE Plagiarism Policy. In particular, it is essential that you correctly attribute any code that you (i.e., either of the two project partners for this programming project) have not written yourself; i.e., which is derived in whole or part from third party code.

Programming project (last edited 2013-10-29 14:51:26 by ManuelChakravarty)