Scope Graphs: The Story so Far
Aron Zwaan, Hendrik van Antwerpen
Date: Wed, March 08, 2023
Time: 12:30
Room: Turing 0.E420
Static name binding (i.e., associating references with appropriate declarations) is an essential aspect of programming languages. However, it is usually treated in an unprincipled manner, often leaving a gap between formalization and implementation. The scope graph formalism mitigates these deficiencies by providing a well-defined, first-class, language-parametric representation of name binding. Scope graphs serve as a foundation for deriving type checkers from declarative type system specifications, reasoning about type soundness, and implementing editor services and refactorings. In this paper we present an overview of scope graphs, and, using examples, show how the ideas and notation of the formalism have evolved. We also briefly discuss follow-up research beyond type checking, and evaluate the formalism.
Previous:
Casper Bach Poulsen | Renamingless Capture-Avoiding Substitution for Definitional Interpreters
Next:
| Implementation and verification of an SMT solver