SPLASH 2022
Mon 5 - Sat 10 December 2022 Auckland, New Zealand

To warrant programmer productivity, type checker results should be correct and available fast. 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 partial evaluation. To this end, we introduce a tailored procedural intermediate query resolution language, and provide a specializer that translates declarative queries to this language.

Evaluating this specializer by comparing type checking run time performance on three benchmarks (Apache Commons CSV, IO, and Lang3), shows that our specializer improves query resolution time by between 1.5x and 321x, which reduces the total type checking run time by 35 - 45%.

Wed 7 Dec

Displayed time zone: Auckland, Wellington change

10:30 - 12:00
Session 6. Language Implementation, Debugging and OptimizationSLE at Seminar Room G007
Chair(s): Marco Servetto Victoria University of Wellington
10:30
24m
Talk
A Multi-target, Multi-paradigm DSL Compiler for Algorithmic Graph ProcessingVirtualResearch Paper
SLE
Houda Boukham Ecole Mohammadia d'Ingénieurs; Oracle Labs, Guido Wachsmuth Oracle Labs, Martijn Dwars Oracle Labs, Dalila Chiadmi Ecole Mohammadia d'Ingénieurs
DOI
10:54
24m
Talk
Optimising First-Class Pattern MatchingResearch PaperIn Person
SLE
Jeff Smits Delft University of Technology, Toine Hartman Independent, Jesper Cockx Delft University of Technology
DOI
11:18
24m
Talk
Specializing Scope Graph Resolution QueriesResearch PaperIn Person
SLE
Aron Zwaan Delft University of Technology
DOI
11:42
15m
Talk
Reflection as a Tool to Debug ObjectsTool PaperVirtual
SLE
Steven Costiou INRIA Lille, Vincent Aranega Univ. Lille, CNRS, Inria, Centrale Lille, UMR 9189 - CRIStAL, Marcus Denker INRIA Lille
DOI