Поливариантность
В программном анализе поливариантный — для или контекстно-зависимый анализ (в отличие от моновариантного или контекстно-независимого анализа) анализирует каждую функцию несколько раз — обычно один раз на каждом месте вызова повышения точности анализа. [1] Поливариантность часто встречается в анализе потоков данных и указателей .
К формам поливариантности относятся:
- Чувствительность места вызова [2]
- Алгоритм декартового произведения [3]
- Чувствительность объекта [2]
- Тип чувствительности [2]
Первые два чаще используются для анализа потоков данных, последние два чаще используются для анализа указателей.
Ссылки
[ редактировать ]- ^ Палсберг, Йенс ; Павлопулу, Кристина (2001). «От информации о поливариантном потоке к типам пересечений и объединений». Материалы 25-го симпозиума ACM SIGPLAN-SIGACT по принципам языков программирования (POPL '98) . 11 (3): 197–208. CiteSeerX 10.1.1.36.4441 . дои : 10.1017/S095679680100394X . S2CID 16895848 .
- ^ Jump up to: а б с Смарагдакис и Балацурас 2015 .
- ^ Гилрей, Томас; Адамс, Майкл Д.; Мэйт, Мэтью (04 сентября 2016 г.). «Распределение характеризует поливариантность: унифицированная методология поливариантного анализа потока управления» . Материалы 21-й Международной конференции ACM SIGPLAN по функциональному программированию . ICFP 2016. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники. стр. 407–420. дои : 10.1145/2951913.2951936 . ISBN 978-1-4503-4219-3 . S2CID 7768606 .
Источники
[ редактировать ]- Смарагдакис, Яннис; Балацурас, Джордж (2015). «Анализ указателя» (PDF) . Основы и тенденции в языках программирования . 2 (1): 1–69. дои : 10.1561/2500000014 . Проверено 30 мая 2019 г.