In this lecture we study name binding and name resolution. We introduce the notion of a scope graph to represent the bindings in a program and name resolution queries in a scope graph to resolve references (uses of names) to declarations (definitions of names).
In addition to the lecture (see the recording on BrightSpace), see the talks about scope graphs below. The Curry On 2017 talk provides a somewhat higher-level presentation of the resolution calculus that is at the basis of resolution scope graphs. See also to Statix tutorial listed on the page of the previous lecture.
Presentation of the OOPSLA’18 paper that introduced Statix.
A high-level introduction to scope graphs and the resolution calculus.
Explores alternative interpretation of Statix specifications for editor services such as semantic completion.