# Calculate exposed reads for this code fragment # for i := 1 to n do # for j := 1 to m do # if p(i,j) >= 0 then a(i,j) = 1 # else a(i,j) = 0 # .... a(i,j) # symbolic p(2), n, m; R := { [ir,jr] : 1 <= ir <= n && 1 <= jr <= m }; W1 := { [iw,jw] : 1 <= iw <= n && 1 <= jw <= m && p(iw,jw) >= 0 }; W2 := { [iw,jw] : 1 <= iw <= n && 1 <= jw <= m && p(iw,jw) < 0 }; Exposed := R-W1-W2; Exposed;