TY - GEN
T1 - Higher-Ranked Annotation Polymorphic Dependency Analysis
AU - Thorand, Fabian
AU - Hage, Jurriaan
PY - 2020/4/18
Y1 - 2020/4/18
N2 - The precision of a static analysis can be improved by increasing the context-sensitivity of the analysis. In a type-based formulation of static analysis for functional languages this can be achieved by, e.g., introducing let-polyvariance or subtyping. In this paper we go one step further by defining a higher-ranked polyvariant type system so that even properties of lambda-bound identifiers can be generalized over. We do this for dependency analysis, a generic analysis that can be instantiated to a range of different analyses that in this way all can profit. We prove that our analysis is sound with respect to a call-by-name semantics and that it satisfies a so-called noninterference property. We provide a type reconstruction algorithm that we have proven to be terminating, and sound and complete with respect to its declarative specification. Our principled description can serve as a blueprint for making other analyses higher-ranked.
AB - The precision of a static analysis can be improved by increasing the context-sensitivity of the analysis. In a type-based formulation of static analysis for functional languages this can be achieved by, e.g., introducing let-polyvariance or subtyping. In this paper we go one step further by defining a higher-ranked polyvariant type system so that even properties of lambda-bound identifiers can be generalized over. We do this for dependency analysis, a generic analysis that can be instantiated to a range of different analyses that in this way all can profit. We prove that our analysis is sound with respect to a call-by-name semantics and that it satisfies a so-called noninterference property. We provide a type reconstruction algorithm that we have proven to be terminating, and sound and complete with respect to its declarative specification. Our principled description can serve as a blueprint for making other analyses higher-ranked.
UR - https://www.scopus.com/pages/publications/85083970713
U2 - 10.1007/978-3-030-44914-8_24
DO - 10.1007/978-3-030-44914-8_24
M3 - Conference contribution
SN - 9783030449131
T3 - Lecture Notes in Computer Science
SP - 656
EP - 683
BT - Programming Languages and Systems. ESOP 2020
A2 - Müller, Peter
PB - Springer
T2 - 29th European Symposium on Programming 2020
Y2 - 25 April 2020 through 30 April 2020
ER -