Changes between Version 26 and Version 27 of IR2
- Timestamp:
- 04/28/21 10:19:50 (5 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
IR2
v26 v27 4 4 5 5 * CIVL-IR is a subset of CIVL-C. A CIVL-IR program is a CIVL-C program, and has the same semantics. 6 7 Questions 8 * how to allocate an array 9 * how to initialize a variable (what are initial values?) 10 * how to go between sequences and arrays 11 * can you make types values? (reification) 12 * pure functions? A pure function is a mathematical function of its arguments. It cannot modify the state. 13 * state functions? A state function is a function of the current state (including arguments, global variables, ...). It cannot modify the state. Every pure function is a state function. 14 * declarators need parentheses 15 * `$depends_on` 16 * read/write sets: function calls to start, stop monitoring reads/writes? All part of mem library 17 * function calls for atomic enter/exit 18 * a type for $state ? 19 6 20 7 21 === Grammar === … … 42 56 * a `$system` function has no definition in CIVL-IR, but is instead defined elsewhere (for example, in C or Java code). Such a function will always be executed atomically. The first string specifies a path (e.g., Java package) to the library containing the function, the second is the name of the library. These two Strings should be enough to tell CIVL where to find the system definition of the function. 43 57 * the `expr` in a guard must have type `$bool` 58 * add statement `$new`: 44 59 60 {{{ 61 int a[]; 62 void main() { 63 a = (int[10])$lambda(int i; $undefined); 64 a = $new(int[10]); // 65 ... initialized a somehow ... 66 $assume($defined(a, 0, 10)); // ? 67 }}} 45 68 46 69 === Types === … … 81 104 * The difference between the function type and map type: a function is really a procedure in the language, so it can modify the state as well as return a value. This is like the C notion of "function". A map is a logical partial function: it is defined on some subset of the domain type, it will always "return" the same value on a given input, and reading it cannot modify the state. 82 105 83 Questions 84 * how to allocate an array 85 * how to initialize a variable (what are initial values?) 86 * how to go between sequences and arrays 87 * can you make types values? (reification) 106 88 107 89 108 === Statements ===
