CS6843 Program Analysis

Mode: Contact course
Course description
Course faculty: Rupesh Nasre (rupesh0508@gmail.com).

Schedule
Assign 1: Aug 3
Assign 2: Aug 13
EndSem: Aug 16 17 at 14:30 in CSB 11

Slides and Reading Material

Evaluation
Two assignments (66%), exam (34%)

Assign 1: Develop flow-sensitive inclusion-based pointer analysis. The output should be points-to information (that is pointees) of each pointer at the end of the program. You have to create 10 simple test-cases. I will ask you for a demo. The program contains only local integers and integer pointers, assignments (address-of, load, store and copy), if-else, and loops. No function calls, no arrays, no nested if-else, no pointer arithmetic, etc.

Assign 2: Implement a static analysis to find out dangling pointers in the program. A pointer is dangling if the memory it is pointing to has been deallocated. A null pointer is not a dangling pointer. The output should be a list of pointer names that could be dangling along any path to the end of main. You have to create 10 simple test-cases. I will ask you for a demo. The program contains only local integers and integer pointers, assignments (address-of, load, store and copy), malloc, free, if-else, and loops with arbitrary nesting. No other function calls, no arrays, no pointer arithmetic, etc.

If you want to use C, you can use LLVM.
If you want to use Java, here is a link to the tools

Submit the code by email as a single tar-gzipped file containing only the code/files you wrote, by 23:59 of the deadline.

The final grading is as follows.
S: >= 95 + overall performance
A: >= 80
B: >= 70
C: >= 60
D: >= 50
E: >= 40