CFG Extraction » History » Version 1
Alexander Kamkin, 03/01/2013 01:33 PM
1 | 1 | Alexander Kamkin | h1. CFG Extraction |
---|---|---|---|
2 | |||
3 | Given a set of clocked guarded actions (CGAs), it is required to compose them into control flow graphs (CFGs). At greater length, but still informally, it is needed to determine which of the action variables encode control information and to link actions connected through those variables. |
||
4 | |||
5 | h3. Examples |
||
6 | |||
7 | <pre> |
||
8 | A1: ... => { ..., x = 1 } |
||
9 | A2: x = 1 => { ... } |
||
10 | </pre> |
||
11 | |||
12 | Here is a link between @A1@ and @A2@. |
||
13 | |||
14 | <pre> |
||
15 | A1: ... => { ..., x = 1 } |
||
16 | A2: x = 1 => { ... } |
||
17 | A3: x = 1 => { ... } |
||
18 | </pre> |
||
19 | |||
20 | Here are links between @A1@ and @A2@ and between @A1@ and @A3@ (fork). |
||
21 | |||
22 | h3. Links |
||
23 | |||
24 | Links between actions can be divided into two main groups: |
||
25 | |||
26 | # *Hard links* |
||
27 | # *Soft links* |
||
28 | |||
29 | The examples above illustrate hard links. There is a hard link _Ai_ -> _Aj_ iff _Ai_''s actions contain _x_ = _v_ and Aj''s guard is exactly _x_ == _v_, where _x_ is some variable (vector of variables) and _v_ is a concrete value (vector of values). |