To warrant programmer productivity, type checker results should be correct and available quickly. Correctness can be provided when a type checker implementation corresponds to a declarative type system specification. Statix is a type system specification language which achieves this by automatically deriving type checker implementations from declarative typing rules. A key feature of Statix is that it uses scope graphs for declarative specification of name resolution. However, compared to hand-written type checkers, type checkers derived from Statix specifications have sub-optimal run time performance.In this paper, we identify and resolve a performance bottleneck in the Statix solver, namely part of the name resolution algorithm, using par...
Scope graphs are a promising generic framework to model the binding structures of programming langua...
Compilers that can type check compilation units in parallel can make more efficient use of multi-cor...
Recently scope graphs were introduced as a formalism to specify the name binding structure of a prog...
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...
Fast analysis response times in IDEs are essential for a good editor experience. Incremental type-ch...
Fast analysis response times in IDEs are essential for a good editor experience. Incremental type-ch...
Statix is a language which generates a type checker from a declarative specification. However, Stati...
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...
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...
There is a large gap between the specification of type systems and the implementation of their type ...
Static name binding (i.e., associating references with appropriate declarations) is an essential asp...
Scope graphs are a promising generic framework to model the binding structures of programming langua...
Compilers that can type check compilation units in parallel can make more efficient use of multi-cor...
Recently scope graphs were introduced as a formalism to specify the name binding structure of a prog...
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...
Fast analysis response times in IDEs are essential for a good editor experience. Incremental type-ch...
Fast analysis response times in IDEs are essential for a good editor experience. Incremental type-ch...
Statix is a language which generates a type checker from a declarative specification. However, Stati...
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...
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...
There is a large gap between the specification of type systems and the implementation of their type ...
Static name binding (i.e., associating references with appropriate declarations) is an essential asp...
Scope graphs are a promising generic framework to model the binding structures of programming langua...
Compilers that can type check compilation units in parallel can make more efficient use of multi-cor...
Recently scope graphs were introduced as a formalism to specify the name binding structure of a prog...