License: Creative Commons Attribution 4.0 International license (CC BY 4.0)
When quoting this document, please refer to the following
DOI: 10.4230/DARTS.7.2.1
URN: urn:nbn:de:0030-drops-140259
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2021/14025/
van Antwerpen, Hendrik ;
Visser, Eelco
Scope States (Artifact)
Abstract
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. This artifact contains benchmarks and sources for a new framework for implementing hierarchical type checkers that provides implicit parallel execution in the presence of dynamic and mutual dependencies between compilation units. The resulting type checkers can be written without explicit handling of communication or synchronization between different compilation units. We achieve this by providing type checkers with an API for name resolution based on scope graphs, a language-independent formalism that supports a wide range of binding patterns. Our framework is implemented in Java using the actor paradigm. We evaluated our approach by parallelizing the solver for Statix, a meta-language for type checkers based on scope graphs, using our framework. Benchmarks show that the approach results in speedups for the parallel Statix solver of up to 5.0x on 8 cores for real-world code bases.
BibTeX - Entry
@Article{vanantwerpen_et_al:DARTS.7.2.1,
author = {van Antwerpen, Hendrik and Visser, Eelco},
title = {{Scope States (Artifact)}},
pages = {1:1--1:7},
journal = {Dagstuhl Artifacts Series},
ISSN = {2509-8195},
year = {2021},
volume = {7},
number = {2},
editor = {van Antwerpen, Hendrik and Visser, Eelco},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/opus/volltexte/2021/14025},
URN = {urn:nbn:de:0030-drops-140259},
doi = {10.4230/DARTS.7.2.1},
annote = {Keywords: type checking, name resolution, parallel algorithms}
}
Keywords: |
|
type checking, name resolution, parallel algorithms |
Collection: |
|
DARTS, Volume 7, Issue 2, Special Issue of the 35th European Conference on Object-Oriented Programming (ECOOP 2021) |
Related Scholarly Article: |
|
https://doi.org/10.4230/LIPIcs.ECOOP.2021.1 |
Issue Date: |
|
2021 |
Date of publication: |
|
06.07.2021 |