Changes between Version 7 and Version 8 of IR


Ignore:
Timestamp:
11/21/15 22:58:44 (10 years ago)
Author:
siegel
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • IR

    v7 v8  
    22The CIVL-IR.  Also known as "CIVL model".
    33
    4 Grammar?
     4Grammar:
     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.
    510
    611Example:
    712
    813{{{
    9 int f() {
     14$integer f() {
     15  $real x;
     16  $real y;
     17  $float(16,23) z;
     18 
    1019L1 :
    1120  $choose {
     
    1322    $when (g2) stmt2; goto L3;
    1423  }
     24
     25  { // begin new scope
     26    $real x;
     27
    1528L2 :
    16   $choose {
    17     $when (g3) stmt3; goto L4;
    18     ...
    19   }
     29    $choose {
     30      $when (g3) stmt3; goto L4;
     31      ...
     32    }
     33  } // end new scope
    2034...
    2135}
     
    7387 * domain literals?
    7488 * "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`)
    7891* variable
    7992* `e1+e2` : addition
     
    96109* `$forall`, `$exists`
    97110* `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?
    98114
     115Semantics issues
    99116
    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?
    101121
    102122== Statements ==
     
    106126* Spawn
    107127* 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?
    108135
    109136
     
    116143== Libraries ==
    117144
    118