There is a large gap between the specification of type systems and the implementation of their type checkers, which impedes reasoning about the soundness of the type checker with respect to the specification. A vision to close this gap is to automatically obtain type checkers from declarative programming language specifications. This moves the burden of proving correctness from a case-by-case basis for concrete languages, to a single correctness proof for the specification language. This vision is obstructed by an aspect common to all programming languages: name resolution. Naming and scoping are pervasive and complex aspects of the static semantics of programming languages. Implementations of type checkers for languages with name bind...
We show how programming language semantics and definitions of their corresponding type systems can b...
In this report we propose a new approach to types and static type checking in object-oriented databa...
The definition of type equivalence is one of the most important design issues for any typed language...
There is a large gap between the specification of type systems and the implementation of their type ...
Extended version of the OOPSLA '20 paper "Knowing When to Ask". Abstract: There is a large gap betw...
Traditional type-checking programs are typically designed for specific programming languages, re- su...
To warrant programmer productivity, type checker results should be correct and available quickly. Co...
To warrant programmer productivity, type checker results should be correct and available quickly. Co...
Compilers that can type check compilation units in parallel can make more efficient use of multi-cor...
This paper investigates the viability of using scope graphs to implement type checkers for programmi...
Fast analysis response times in IDEs are essential for a good editor experience. Incremental type-ch...
This paper presents novel techniques for checking the sound-ness of a type system automatically usin...
Fast analysis response times in IDEs are essential for a good editor experience. Incremental type-ch...
Scope graphs are a promising generic framework to model the binding structures of programming langua...
This paper introduces the Checker Framework, which supports adding pluggable type systems to the Jav...
We show how programming language semantics and definitions of their corresponding type systems can b...
In this report we propose a new approach to types and static type checking in object-oriented databa...
The definition of type equivalence is one of the most important design issues for any typed language...
There is a large gap between the specification of type systems and the implementation of their type ...
Extended version of the OOPSLA '20 paper "Knowing When to Ask". Abstract: There is a large gap betw...
Traditional type-checking programs are typically designed for specific programming languages, re- su...
To warrant programmer productivity, type checker results should be correct and available quickly. Co...
To warrant programmer productivity, type checker results should be correct and available quickly. Co...
Compilers that can type check compilation units in parallel can make more efficient use of multi-cor...
This paper investigates the viability of using scope graphs to implement type checkers for programmi...
Fast analysis response times in IDEs are essential for a good editor experience. Incremental type-ch...
This paper presents novel techniques for checking the sound-ness of a type system automatically usin...
Fast analysis response times in IDEs are essential for a good editor experience. Incremental type-ch...
Scope graphs are a promising generic framework to model the binding structures of programming langua...
This paper introduces the Checker Framework, which supports adding pluggable type systems to the Jav...
We show how programming language semantics and definitions of their corresponding type systems can b...
In this report we propose a new approach to types and static type checking in object-oriented databa...
The definition of type equivalence is one of the most important design issues for any typed language...