Polyvariance

From Wikipedia, the free encyclopedia

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[edit]

  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. CiteSeerX 10.1.1.36.4441. doi:10.1017/S095679680100394X. S2CID 16895848.
  2. ^ a b c 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. S2CID 7768606.

Sources[edit]