Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | |||
|
sav07_lecture_7 [2009/03/24 23:18] vkuncak |
sav07_lecture_7 [2009/04/08 01:26] (current) vkuncak |
||
|---|---|---|---|
| Line 120: | Line 120: | ||
| The fact that we only used conjunctions is our analysis makes it **path-insensitive**. Intuitively, since we're only taking conjunctions, our normalization is too conservative and we will not be able to retain properties associated to certain paths. **Path-sensitivity** is often used as a measure of the precision of an analysis. | The fact that we only used conjunctions is our analysis makes it **path-insensitive**. Intuitively, since we're only taking conjunctions, our normalization is too conservative and we will not be able to retain properties associated to certain paths. **Path-sensitivity** is often used as a measure of the precision of an analysis. | ||
| + | |||
| Line 133: | Line 134: | ||
| $A^+ = \{ \bigvee (P_{i1} \wedge ... \wedge P_{in}) | P_{ij} \in \{Q_1, ..., Q_n\}) \}$ | $A^+ = \{ \bigvee (P_{i1} \wedge ... \wedge P_{in}) | P_{ij} \in \{Q_1, ..., Q_n\}) \}$ | ||
| - | The use of disjunctions allows us to write predicates about attributes for some particular paths. For this reason, this is called **regional** (or **dependent**) **attribute analysis**. | + | The use of disjunctions allows us to write predicates about attributes for some particular paths. For this reason, this is called **relational** (or **dependent**) **attribute analysis**. |
| If we go back to our previous example, we could end up with a predicate at the final point which would look (at least partially) somehow like: | If we go back to our previous example, we could end up with a predicate at the final point which would look (at least partially) somehow like: | ||