Scope Graphs – A Theory of Name Resolution
Scope graphs offer a formal theory for defining name binding rules in programming languages, providing a structured way to represent declarations, references, and scopes. They enable both visual explanation and rigorous implementation of name resolution through path searches in graphs. This approach supports tooling in language workbenches like Spoofax, facilitating IDE features and interpreters with a language-independent foundation.
- ▪Scope graphs model name binding in programs using declarations, references, and scopes connected by edges.
- ▪Name resolution is performed by searching for paths from references to declarations within a scope graph.
- ▪The Spoofax language workbench uses scope graphs to implement name resolution in IDEs and memory models in interpreters.
- ▪Scope graphs support a generic, language-independent implementation of tools involving name binding and type checking.
- ▪Research on scope graphs has been published in major programming language conferences including ECOOP, OOPSLA, and POPL.
Opening excerpt (first ~120 words) tap to expand
PL Group Organization People Alumni Positions Group Pictures Programming Languages Section Education Teaching Master Project Bachelor Project Research Publications Posters Software Projects Dissertations Technical Reports Events News Seminar Reading Group Contact Scope Graphs | A Theory of Name Resolution Names are crucial for organizing and understanding programs. Yet names and name binding get a second class treatment in programming language definition. We have a fairly standardized approach based on context-free grammars to provide tool independent descriptions of the syntax of programming languages. There is no analog for describing the name binding rules of programming languages.
…
Excerpt limited to ~120 words for fair-use compliance. The full article is at Tudelft.