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:
- Call-site sensitivity[2]
- The Cartesian product algorithm[3]
- Object sensitivity[2]
- Type sensitivity[2]
The first two are more often used for dataflow analyses, the latter two are more frequently used for pointer analyses.
References
- ↑ 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.0 2.1 2.2 Smaragdakis & Balatsouras 2015.
- ↑ 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
- Smaragdakis, Yannis; Balatsouras, George (2015). "Pointer Analysis". Foundations and Trends in Programming Languages 2 (1): 1–69. doi:10.1561/2500000014. https://yanniss.github.io/points-to-tutorial15.pdf. Retrieved May 30, 2019.
Original source: https://en.wikipedia.org/wiki/Polyvariance.
Read more |