Defining Name Accessibility using Scope Graphs
Many programming languages allow programmers to regulate name accessibility; i.e., annotating a name with keywords such as export and private to indicate where it can be accessed. Despite the importance of name accessibility for, e.g., compilers, editor auto-completion and tooling, and automated refactorings, few existing type systems provide a formal account of name accessibility.
We present a declarative, executable, and language-parametric model for name accessibility, which provides a formal account of name accessibility in Java, C#, C++, Rust, and Eiffel. We achieve this by defining name accessibility as a predicate on resolution paths through scope graphs. Since scope graphs are a language-independent model of name resolution, our model provides a uniform approach to defining different accessibility policies for different languages. Our model is implemented in Statix, a logic language for executable type system specification using scope graphs. We evaluate its correctness on a test suite that compares with the C#, Java, and Rust compilers, and show we can synthesize access modifiers in programs with holes accurately.
Tue 17 SepDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
10:30 - 12:00 | |||
10:30 15mTalk | Defining Name Accessibility using Scope Graphs Technical Papers Link to publication Pre-print | ||
10:45 15mTalk | Rose: Composable Autodiff for the Interactive Web Technical Papers Sam Estep Carnegie Mellon University, Wode Ni Carnegie Mellon University, Raven Rothkopf Barnard College, Joshua Sunshine Carnegie Mellon University | ||
11:00 15mTalk | Failure Transparency in Stateful Dataflow Systems Technical Papers Aleksey Veresov KTH Royal Institute of Technology, Jonas Spenger KTH Royal Institute of Technology, Paris Carbone KTH Royal Institute of Technology, Philipp Haller KTH Royal Institute of Technology DOI Pre-print Media Attached File Attached | ||
11:15 15mTalk | Fair join pattern matching for actors Technical Papers Philipp Haller KTH Royal Institute of Technology, Ayman Hussein Technical University of Denmark, Hernan Melgratti University of Buenos Aires, Argentina, Alceste Scalas Technical University of Denmark, Emilio Tuosto Gran Sasso Science Institute, L'Aquila, Italy DOI | ||
11:30 15mTalk | Constrictor: Immutability as a Design Concept Technical Papers DOI Pre-print | ||
11:45 15mTalk | A Language-Based Version Control System for Python Technical Papers Luís Carvalho NOVA School of Science and Technology, João Costa Seco NOVA-LINCS; Nova University of Lisbon |