Automated Inference of Shape Specifications
L Q Loc, Gherghina (Google), Qin (Teesside), W-N Chin
Dept of Computer Science - National University of Singapore
December 16, 2014
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 1 / 51
Automated Inference of Shape Specifications L Q Loc, Gherghina - - PowerPoint PPT Presentation
Automated Inference of Shape Specifications L Q Loc, Gherghina (Google), Qin (Teesside), W-N Chin Dept of Computer Science - National University of Singapore December 16, 2014 Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 1 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 1 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 2 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 3 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 4 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 5 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 6 / 51
1 void free_list(struct snode *x){ 2
3
4
5
6
7
8 }
1
2
3
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 7 / 51
i=1(∆i @ ∆g ⇒ Φi)
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 8 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 9 / 51
1
2
3
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 10 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 11 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 12 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 13 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 14 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 15 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 16 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 17 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 18 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 19 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 20 / 51
1 struct node{struct node* prev
2 void node* sll2dll (struct node *x, struct node *q)
3
4
5
6
7
8 }
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 21 / 51
1 struct node{struct node* prev
2 void node* sll2dll (struct node *x, struct node *q)
3
4
5
6
7
8 }
1
2
3
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 22 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 23 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 24 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 25 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 26 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 27 / 51
1
2
3
4
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 28 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 29 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 30 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 31 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 32 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 33 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 34 / 51
1
2
3
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 35 / 51
1
2
3
1
2
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 36 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 37 / 51
1
2
3
4
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 38 / 51
tll(root,NULL,t)
1 // Iosif et. al. [CADE
2 struct tree{ struct tree* parent; struct tree* left; 3
4 }; 5 struct tree* set_right (struct tree* x, struct tree* parent
6
7
8
9
10
11
12
13
14 } Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 39 / 51
tll(root,NULL,t)
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 40 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 41 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 42 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 43 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 44 / 51
tll(root,NULL,t)
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 45 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 46 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 47 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 48 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 49 / 51
1
2
3
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 50 / 51
Loc, Gherghina, Qin, Chin (NUS) Shape Inference Tut 2b 51 / 51