Douglas Creager guest lecture

On Oct 16, Douglas Creager, who currently works at GItHub on program analysis tools, will be visiting in person. Doug has a lot of fascinating projects under his belt, and his insight about how PL research meets industrial applications is hard to beat.

Title: Stack graphs and incremental program analysis

Abstract: The stack graphs framework powers Precide Code Navigation on github.com. We model the name binding semantics of a program via a language-agnostic graph structure. Code Navigation features like "jump to definition" are implemented as a simple path-finding search within this graph.

Importantly, stack graphs support a strong version of incremental program analysis. A stack graph consists of several subgraphs, each of which depends solely on the contents of one of the files in the program's source code. These subgraphs can be created in isolation from each other and in parallel. When we analyze a new version of the program in the future (for instance, when a new commit is pushed to the program's repository), we can reuse the previously computed subgraphs for any files that have not changed. Moreover, since these subgraphs depend only on the file content, we can leverage existing git blob identifiers to identify this reusable work.