Changes between Version 7 and Version 8 of IR
- Timestamp:
- 11/21/15 22:58:44 (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
IR
v7 v8 2 2 The CIVL-IR. Also known as "CIVL model". 3 3 4 Grammar? 4 Grammar: 5 6 * a subset of CIVL-C, explicit guarded-trasition systems 7 * functions, scopes, functions defined in any scope 8 * all blocks start with variable declarations; no initializers 9 * an array is declared without any length expression. When it is initialized it can specify length. 5 10 6 11 Example: 7 12 8 13 {{{ 9 int f() { 14 $integer f() { 15 $real x; 16 $real y; 17 $float(16,23) z; 18 10 19 L1 : 11 20 $choose { … … 13 22 $when (g2) stmt2; goto L3; 14 23 } 24 25 { // begin new scope 26 $real x; 27 15 28 L2 : 16 $choose { 17 $when (g3) stmt3; goto L4; 18 ... 19 } 29 $choose { 30 $when (g3) stmt3; goto L4; 31 ... 32 } 33 } // end new scope 20 34 ... 21 35 } … … 73 87 * domain literals? 74 88 * "abc" : string literals (array of char -- same as array literal?) 75 * `$root`, `$here` (scope values) 76 * `$self`, undefined process (proc value) 77 89 * `$root`, `$here` (values of type `$scope`) 90 * `$self`, `$proc_null`, `$proc_undef`? (values of type `$proc`) 78 91 * variable 79 92 * `e1+e2` : addition … … 96 109 * `$forall`, `$exists` 97 110 * `e1.i`, some natural number i (tuple read) 111 * `$initial_value(e1)` : some way to get initial value of something (like array)? 112 * `$typeof(...)`: what is this for? 113 * `$sizeof(T)` : T is a type name? 98 114 115 Semantics issues 99 116 100 117 * define every possible cast 118 * define every possible +, etc. 119 * define every kind of pointer value and casts between pointer types 120 * casts between pointer and integer types? 101 121 102 122 == Statements == … … 106 126 * Spawn 107 127 * Wait 128 * Malloc 129 * Noop 130 * Return 131 * Atomic_enter 132 * Atomic_exit 133 * Parfor_spawn. is there exit? 134 * For_dom_enter (for domains). exit? 108 135 109 136 … … 116 143 == Libraries == 117 144 118
