-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathr.elf
64 lines (43 loc) · 1.95 KB
/
r.elf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
%% Dynamic semantics for r expressions, pg. 58.
DR_3_1 : H ;e (l_e L) -r-> H ;e V
<- get Hx P V
<- (find_in_heap L H Hx).
DR_3_2 : H ;e (assign (p_e (l_e L) P) V) -r-> H' ;e V
<- set V' P V V''
<- replace_in_heap H L V H'.
DR_3_3 : H ;e (star (amp (p_e (l_e L) P))) -r-> H ;e (p_e (l_e L) P).
DR_3_4_left : H ;e (dot (pair V0 V1) zero_pe) -r-> H ;e V0
<- value V0
<- value V1.
DR_3_4_right : H ;e (dot (pair V0 V1) zero_pe) -r-> H ;e V1
<- value V0
<- value V1.
DR_3_6 : H ;e (call (return V)) -r-> H ;e V
<- value V.
%% NOTE: TODO DR_3_7
DR_3_8 : H ;e (call S) -r-> H' ;e (call S')
<- H ;s S -s-> H' ;s S'.
DR_3_9_amp : H ;e (amp E) -r-> H' ;e (amp E')
<- H ;e E -l-> H' ;e E'.
DR_3_9_assign : H ;e (assign E E2) -r-> H' ;e (assign E' E2)
<- H ;e E -l-> H' ;e E'.
DR_3_10_star : H ;e (star E) -r-> H' ;e E'
<- H ;e E -r-> H' ;e E'.
DR_3_10_dot : H ;e (dot E I) -r-> H' ;e (dot E' I)
<- H ;e E -r-> H' ;e E'.
DR_3_10_assign_xp : H ;e (assign XP E) -r-> H' ;e (assign XP E')
<- H ;e E -r-> H' ;e E'.
%% NOTE: TODO useless runtime type instantiation.
DR_3_10_inst : H ;e (inst E T) -r-> H' ;e E'
<- H ;e E -r-> H' ;e E'.
DR_3_10_pair_left : H ;e (pair E E2) -r-> H' ;e (pair E' E2)
<- H ;e E -r-> H' ;e E'.
DR_3_10_pair_right : H ;e (pair V E) -r-> H' ;e (pair V E')
<- H ;e E -r-> H' ;e E'
<- value V.
DR_3_10_appl_left : H ;e (appl E E2) -r-> H' ;e (appl E' E2)
<- H ;e E -r-> H' ;e E'.
DR_3_10_appl_right : H ;e (appl V E) -r-> H' ;e (appl V V')
<- H ;e E -r-> H' ;e E'.
DR_3_10_pack : H ;e (pack T' E T) -r-> H' ;e (pack T' E' T)
<- H ;e E -r-> H' ;e E'.