Changes between Version 41 and Version 42 of IR2
- Timestamp:
- 04/28/21 17:31:23 (5 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
IR2
v41 v42 7 7 * The basic representation of a function is as a "program graph"---a directed graph in which the nodes are locations and edges are atomic statements. 8 8 * Expressions are side-effect free. 9 * There are no automatic conversions. All conversions must be by explicit casts or other functions. Operations such as numeric addition (add) require that both operands have the exact same type. 10 * In general, symbols can be used before they are defined, as long as they are in scope. For example, a function f can call g, even if g is defined after f in the same scope. There is no need for a "prototype". Similarly, a type definition can refer to a type defined later, or can refer to itself in its own definition. 9 11 10 12 … … 26 28 1. a type for $state ? 27 29 1. How do you model `malloc` when the element type is not known? (Create a type `$byte`?) 28 30 1. How do you specify the guard of a system function (this should be the name of another function) 31 1. How do you iterate over a domain? 29 32 30 33 == Grammar == … … 189 192 190 193 {{{ 191 $parspawn($proc * proc_array, $domain d, void (*f)($int, ...)); /* parallel spawn */ 194 void $parspawn($proc * proc_array, $domain d, void (*f)($int, ...)); /* parallel spawn */ 195 void $atomic_enter(); 196 void $atomic_exit(); 197 void $yield(); 192 198 193 199 }}}
