3 Flags have type/name associated with them
4 Are either present or not present
7 Task parameters can't be modified
9 How do we handle new object allocation?
10 Idea #1: Simply lose precision -- don't even attempt analysis
11 Improvement - let set flags at allocation
13 Non parameter variables:
14 1) Type must contain flags
15 2) Apply flag additions to all states
17 ------------------------------------------------------------------------------
23 Tags have type/name associated with them
24 Also have UID associated with them
26 Ordered: Initial/Next / Preserves Sequencing
27 Non-ordered: New / Groups items together
29 ----------------------------------------------------------------------
31 Have list of parameters w/ flag/tag specifications
32 Flag/Tag transitions at task exit
33 -----------------------------------------------------------------------
35 How do we efficiently do task dispatch?
39 Build static state transition diagram : explore full space for now
40 Then for each state transition we consider:
41 1) What task activations have we added
42 2) What task activations have we removed
43 Collapse state transition diagram to
46 Tags - search once we match a flag
51 trigger role specification for tasks:
52 role mutator operation:
56 Role transition diagram
75 tag tag2=incrementtag(tag tag1);
80 task foo(type1 o1{role1||role2}, type2 o2{role3}) {
82 exit(o1{role1'=false},o2{role3'=false},onew{role4=true});