En el análisis de programas , un análisis polivariante o sensible al contexto (a diferencia de un análisis monovariante o insensible al contexto ) analiza cada función varias veces (normalmente una vez en cada sitio de llamada ) para mejorar la precisión del análisis. [1] La polivarianza es común en los análisis de flujo de datos y de punteros .
Las formas de polivarianza incluyen:
- Sensibilidad del sitio de llamada
- El algoritmo del producto cartesiano [3]
- Sensibilidad de los objetos
- Sensibilidad de tipo
Los dos primeros se utilizan con más frecuencia para análisis de flujo de datos, mientras que los dos últimos se utilizan con más frecuencia para análisis de punteros.
Referencias
- ^ Palsberg, Jens; Pavlopoulou, Christina (2001). "De la información de flujo polivariante a los tipos de intersección y unión". Actas del 25.º Simposio ACM SIGPLAN-SIGACT sobre principios de lenguajes de programación (POPL '98) . 11 (3): 197–208. CiteSeerX 10.1.1.36.4441 . doi :10.1017/S095679680100394X. S2CID 16895848.
- ^ Gilray, Thomas; Adams, Michael D.; Might, Matthew (4 de septiembre de 2016). "La asignación caracteriza la polivarianza: una metodología unificada para el análisis de flujo de control polivariante". Actas de la 21.ª Conferencia internacional ACM SIGPLAN sobre programación funcional . ICFP 2016. Nueva York, NY, EE. UU.: Association for Computing Machinery. págs. 407–420. doi :10.1145/2951913.2951936. ISBN . 978-1-4503-4219-3.S2CID7768606 .
Fuentes
- Smaragdakis, Yannis; Balatsouras, George (2015). "Análisis de punteros" (PDF) . Fundamentos y tendencias en lenguajes de programación . 2 (1): 1–69. doi :10.1561/2500000014 . Consultado el 30 de mayo de 2019 .