Assign 1: June
Assign 2: June 25
EndSem: July 4
Slides and Reading Material
Two assignments (50%), two exams (50%)
Assign 1: Implement an analysis to find out if an array is allocated before it is used. You have to create 10 simple test-cases. I will ask you for a demo. The program structure consists of declarations (int and int), assignments, conditionals, loops (for and while), but no function calls.
Assign 2: Implement an analysis to store versioned array, that is, whenever a statement writes to an array element, your analysis instruments the code (statically) to make a copy of the array such that the writing happens to the copy and the original array remains intact. Future references to the written array element should happen to the copy array (obviously).
If you want to use C, you can use LLVM.
If you want to use Java, here is a link to the tools
You can discuss ideas amongst yourselves, but the test-cases and the code should be your own.
Submit the code by email as a single tar-gzipped file containing only the code/files you wrote, by 23:59 of the deadline.
MidSem would consist of DFA, PTA, SHA and DYN. The remaining four topics would be in EndSem.
The final grading is as follows.
S: >= 95 + overall performance
A: >= 80
B: >= 70
C: >= 60
D: >= 50
E: >= 40