CSCE 434 Lecture 40
« previous | Monday, December 2, 2013 | next »
Data Flow Framework
- Semilattice Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \left\langle L, \wedge \right\rangle} that includes a domain of values Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle V} and a meet (confluence) operator
- Family of functions closed under composition
- Direction (forward or backward)
Partial ordering such that for .
Semilattice
Pair , where
- is a nonempty set of values
- is a binary meet operator on such that for all ,
- (idempotent)
- (commutative)
- (associative)
Top element , such that for all , .
Optionally a bottom element , such that for all , .
Example: Reaching Definitions
, where is the set of all defs in the program.
, where and are sets of defs in representing GEN and KILL sets, respectively.
Meet operator is union ().
Example: Available Expressions
, where is the set of all expressions computed by program.
, where and are sets of defs in representing GEN and KILL sets, respectively.
Meet operator is intersection ().
Example: Constant Propagation
Transfer functions are quite complicated, but here's the gist:
| const val | nonconst | unknown | |
|---|---|---|---|
| const val | c == d ? c : nonconst
|
nonconst | |
| nonconst | nonconst | nonconst | nonconst |
| unknown | nonconst | unknown |
Monotonicity and Distributivity
A framework Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \left\langle L, F, \wedge \right\rangle} is monotone if and only if
- Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle u \le v} implies Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle f(u) \le f(v)} for all Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle u,v \in L} and all Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle f \in F} , or equivalently
- Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle f(u \wedge v) \le f(u) \wedge f(v)} for all Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle u,v \in L} and all Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle f \in F} .
Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \left\langle L,F,\wedge \right\rangle}
is distributive if and only if
Distributivity implies monotonicity.