We show how the information inferred by path analysis can be used to implement destructive aggregate updating, in which updates on functional aggregates that are provably not live are done destructively. We also demonstrate a new approach to strictness analysis and show that strictness analysis is subsumed by path analysis. Benchmarks are presented. By using path analysis, it is possible to determine the order of expression evaluation at compile time. This information can be used to optimize the code produced by a compiler.
Path analysis is a computable abstraction of path semantics.
Path semantics is a nonstandard semantics containing standard denotational semantics and paths. A path is defined as a sequence of bound identifiers in their evaluation order. The result of the path analysis of an expression is the set of all possible paths of expression evaluation. She also proves that strictness analysis performed this way is as efficient as strictness analysis performed by other techniques. The paper is well written and supported by examples, figures, and benchmark results.