Scope graphs are a promising generic framework for modeling the binding structures of programming languages, briding formalization and implementation, supporting the definition of type checkers and the automation of type safety proofs. However, previous work on scope graphs has been limited to simple, nominal type systems. In this paper, we show that viewing scopes as types enables us to model the internal structure of types in a range of non-simple type systems (including structural records and generic classes) using the generic representation of scopes. Further, we show that relations between such types can be expressed in terms of generalized scope graph queries. We extend scope graphs with scoped relations and queries. We introduce Statix, a new domain-specific meta-language for the specification of static semantics, based on scope graphs and constraints. We evaluate the scopes as types approach and the Statix design in case studies of STLCREC, System F, and Featherweight Generic Java.
PDF (oopsla18main-p49-p.pdf) | 486KiB |
Wed 7 NovDisplayed time zone: Guadalajara, Mexico City, Monterrey change
10:30 - 12:00 | |||
10:30 22mTalk | Effect Handlers for the Masses OOPSLA Jonathan Immanuel Brachthäuser University of Tübingen, Germany, Philipp Schuster University of Tübingen, Germany, Klaus Ostermann University of Tübingen, Germany | ||
10:52 22mTalk | Empowering Union and Intersection Types with Integrated Subtyping OOPSLA Link to publication DOI Pre-print | ||
11:15 22mTalk | Julia Subtyping: a Rational Reconstruction OOPSLA Francesco Zappa Nardelli Inria, Julia Belyakova Northeastern University, USA, Artem Pelenitsyn Northeastern University, Benjamin Chung Northeastern University, Jeff Bezanson Julia Computing, Jan Vitek Northeastern University DOI Media Attached | ||
11:37 22mTalk | Scopes as Types OOPSLA Hendrik van Antwerpen TU Delft, Casper Bach Poulsen Delft University of Technology, Arjen Rouvoet Delft University of Technology, Eelco Visser Delft University of Technology Link to publication DOI File Attached |