Changes between Version 17 and Version 18 of IR2


Ignore:
Timestamp:
04/26/21 13:04:39 (5 years ago)
Author:
siegel
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • IR2

    v17 v18  
    6767}}}
    6868
    69 
    70 === Types ===
    71 * `$bool` : boolean type ($true and $false, unrelated to integers)
    72 * `$char` : character type (Unicode characters, unrelated to integers)
    73 * `$int` : mathematical integers
    74 * `$real` : mathematical reals
    75 * `$float<e,f>` : IEEE floating-point numbers e=significand bits, f=exponent bits
    76 * `$herbrand<T>` : Herbrand type of non-Herbrand numeric type T
    77 * `$proc` : process type
    78 * `$bundle`: bundle type for sequence of any type (same as seq<T>?)
    79 * `$heap` : heap type, for dynamic allocation
    80 * `$range` : regular sequence of integers
    81 * `$domain` : tuple of ranges
    82 * `$mem` : set of memory locations
    83 * `enum tag` : enumerated type
    84 * `struct tag` : structured type, can also be used for "tuples"
    85 * `union tag` : union type
    86 * `T[]` : array of T
    87 * `void *` : pointer to anything
    88 * `T *` : pointer to T
    89 * `T(T1, ..., Tn)` : function (aka procedure) consuming T1, ..., Tn and returning T
    90 * `$seq<T>` : sequence of T
    91 * `$set<T>` : set of T
    92 * `$map<T1,T2>` : map from T1 to T2
    93 * `$rel<T1, ..., Tn>` : relation,  set of n-tuples
    94 
    9569Notes
    9670* Sequences, sets, maps, and relations are immutable.   An assignment using objects of this type creates a new copy of the object, just as with primitive types like `int`.