notes
[IRC.git] / Robust / src / designnotes
1 Objects have:
2 Collection of Flags
3 Collection of Tags
4 ----------------------------------------------------------------------
5 Tasks:
6 Have list of parameters w/ flag/tag specifications
7 Flag/Tag transitions at task exit
8 -----------------------------------------------------------------------
9 Problems:
10 How do we efficiently do task dispatch?
11
12 Idea:
13 Flags - efficiently
14 Build static state transition diagram : explore full space for now
15 Then for each state transition we consider:
16 1) What task activations have we added
17 2) What task activations have we removed
18 Collapse state transition diagram to 
19
20
21 Tags - search once we match a flag
22
23
24
25 Input:
26 trigger role specification for tasks:
27 role mutator operation:
28 role definition:
29
30 Generate:
31 Role transition diagram
32
33
34 Initial features:
35 methods
36 structs
37 type system
38
39 Language features:
40 Single Inheritance
41 Virtual methods
42 Objects
43
44 object metastate:
45 1. flags: flag role1
46 2. tags: tag tag1
47
48 tag operations:
49 tag tag1=new tag;
50 tag tag2=incrementtag(tag tag1);
51 tag tag3=no tag;
52
53 metastate operations:
54
55 task foo(type1 o1{role1||role2}, type2 o2{role3}) {
56         
57   exit(o1{role1'=false},o2{role3'=false},onew{role4=true});
58 }