Compilers that can type check compilation units in parallel can make more efficient use of multi-core architectures, which are nowadays widespread. Developing parallel type checker implementations is complicated by the need to handle concurrency and synchronization of parallel compilation units. Dependencies between compilation units are induced by name resolution, and a parallel type checker needs to ensure that units have defined all relevant names before other units do a lookup. Mutually recursive references and implicitly discovered dependencies between compilation units preclude determining a static compilation order for many programming languages. In this paper, we present a new framework for implementing hierarchical type checkers th...
Scope graphs are a promising generic framework to model the binding structures of programming langua...
There is a large gap between the specification of type systems and the implementation of their type ...
Static analyses and transformations are an important part of programming and domain specific languag...
Compilers that can type check compilation units in parallel can make more efficient use of multi-cor...
There is a large gap between the specification of type systems and the implementation of their type ...
Traditional type-checking programs are typically designed for specific programming languages, re- su...
Fast analysis response times in IDEs are essential for a good editor experience. Incremental type-ch...
Extended version of the OOPSLA '20 paper "Knowing When to Ask". Abstract: There is a large gap betw...
To warrant programmer productivity, type checker results should be correct and available quickly. Co...
Static name binding (i.e., associating references with appropriate declarations) is an essential asp...
This paper investigates the viability of using scope graphs to implement type checkers for programmi...
Statix is a language which generates a type checker from a declarative specification. However, Stati...
To warrant programmer productivity, type checker results should be correct and available quickly. Co...
Fast analysis response times in IDEs are essential for a good editor experience. Incremental type-ch...
Recently scope graphs were introduced as a formalism to specify the name binding structure of a prog...
Scope graphs are a promising generic framework to model the binding structures of programming langua...
There is a large gap between the specification of type systems and the implementation of their type ...
Static analyses and transformations are an important part of programming and domain specific languag...
Compilers that can type check compilation units in parallel can make more efficient use of multi-cor...
There is a large gap between the specification of type systems and the implementation of their type ...
Traditional type-checking programs are typically designed for specific programming languages, re- su...
Fast analysis response times in IDEs are essential for a good editor experience. Incremental type-ch...
Extended version of the OOPSLA '20 paper "Knowing When to Ask". Abstract: There is a large gap betw...
To warrant programmer productivity, type checker results should be correct and available quickly. Co...
Static name binding (i.e., associating references with appropriate declarations) is an essential asp...
This paper investigates the viability of using scope graphs to implement type checkers for programmi...
Statix is a language which generates a type checker from a declarative specification. However, Stati...
To warrant programmer productivity, type checker results should be correct and available quickly. Co...
Fast analysis response times in IDEs are essential for a good editor experience. Incremental type-ch...
Recently scope graphs were introduced as a formalism to specify the name binding structure of a prog...
Scope graphs are a promising generic framework to model the binding structures of programming langua...
There is a large gap between the specification of type systems and the implementation of their type ...
Static analyses and transformations are an important part of programming and domain specific languag...