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