Polyvariance

From HandWiki

In program analysis, a polyvariant or context-sensitive analysis (as opposed to a monovariant or context-insensitive analysis) analyzes each function multiple times—typically once at each call site—to improve the precision of the analysis.[1] Polyvariance is common in data-flow and pointer analyses. Forms of polyvariance include:

The first two are more often used for dataflow analyses, the latter two are more frequently used for pointer analyses.

References

  1. Palsberg, Jens; Pavlopoulou, Christina (2001). "From Polyvariant Flow Information to Intersection and Union Types". Proceedings of the 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '98) 11 (3): 197–208. doi:10.1017/S095679680100394X. 
  2. 2.0 2.1 2.2 Smaragdakis & Balatsouras 2015.
  3. Gilray, Thomas; Adams, Michael D.; Might, Matthew (2016-09-04). "Allocation characterizes polyvariance: A unified methodology for polyvariant control-flow analysis". Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming. ICFP 2016. New York, NY, USA: Association for Computing Machinery. pp. 407–420. doi:10.1145/2951913.2951936. ISBN 978-1-4503-4219-3. https://doi.org/10.1145/2951913.2951936. 

Sources