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 w...
We present a subtyping extension to the Hindley/Milner type system that is based on name inequivalen...
Subtyping is used in language design, type checking and program analysis. Mitchell and others have s...
Label flow analysis is a fundamental static analysis problem with a wide variety of applications. Pr...
The precision of a static analysis can be improved by increasing the context-sensitivity of the anal...
Type inference is a key component of modern statically typed programming languages. It allows progra...
Many computer programs have the property that they work correctly on a variety of types of input; s...
Abstract. Languages for intensional type analysis permit ad-hoc polymorphism, or run-time analysis o...
research.microsoft.com/Users/simonpj/ We present a novel inference algorithm for a type system featu...
Abstract. Type information has many applications, it can be used for optimized compilation, terminat...
technical reportWe contribute to the state of the art in static analysis of declarative languages wi...
We study an annotated type and effect system that integrates let-polymorphism, effects, and sybtypin...
Abstract. Dependent types are useful for statically checking detailed specifications of programs and...
Type information has many applications; it can e.g. be used in optimized compilation, termination a...
Modem functional languages feature polymorphic types whose data structures must be fixed, though the...
This thesis describes techniques for efficiently performing polymorphic type inference for function...
We present a subtyping extension to the Hindley/Milner type system that is based on name inequivalen...
Subtyping is used in language design, type checking and program analysis. Mitchell and others have s...
Label flow analysis is a fundamental static analysis problem with a wide variety of applications. Pr...
The precision of a static analysis can be improved by increasing the context-sensitivity of the anal...
Type inference is a key component of modern statically typed programming languages. It allows progra...
Many computer programs have the property that they work correctly on a variety of types of input; s...
Abstract. Languages for intensional type analysis permit ad-hoc polymorphism, or run-time analysis o...
research.microsoft.com/Users/simonpj/ We present a novel inference algorithm for a type system featu...
Abstract. Type information has many applications, it can be used for optimized compilation, terminat...
technical reportWe contribute to the state of the art in static analysis of declarative languages wi...
We study an annotated type and effect system that integrates let-polymorphism, effects, and sybtypin...
Abstract. Dependent types are useful for statically checking detailed specifications of programs and...
Type information has many applications; it can e.g. be used in optimized compilation, termination a...
Modem functional languages feature polymorphic types whose data structures must be fixed, though the...
This thesis describes techniques for efficiently performing polymorphic type inference for function...
We present a subtyping extension to the Hindley/Milner type system that is based on name inequivalen...
Subtyping is used in language design, type checking and program analysis. Mitchell and others have s...
Label flow analysis is a fundamental static analysis problem with a wide variety of applications. Pr...