A Co-Contextual Formulation of Type Rules and its Application to Incremental Type Checking
Type rules associate types to expressions given a typing context. As the type checker traverses the expression tree top-down, it extends the typing context with additional context information that becomes available. This way, the typing context coordinates type checking in otherwise independent subexpressions, which inhibits parallelization and incrementalization of type checking. We propose a co-contextual formulation of type rules that only take an expression as input and produce a type and a set of context requirements. Co-contextual type checkers traverse an expression tree bottom-up and merge context requirements of independently checked subexpressions. We describe a method for systematically constructing a co-contextual formulation of type rules from a regular context-based formulation and we show how co-contextual type rules give rise to incremental type checking. Using our method, we derive incremental type checkers for PCF and for extensions that introduce records, parametric polymorphism, and subtyping. Our performance evaluation shows that co-contextual type checking has performance comparable to standard context-based type checking, and incrementalization can improve performance significantly.
Fri 30 OctDisplayed time zone: Eastern Time (US & Canada) change
15:30 - 17:00 | |||
15:30 22mTalk | A Co-Contextual Formulation of Type Rules and its Application to Incremental Type Checking OOPSLA Sebastian Erdweg TU Darmstadt, Germany, Oliver Bračevac TU Darmstadt, Edlira Kuci TU Darmstadt, Germany, Matthias Krebs TU Darmstadt, Germany, Mira Mezini TU Darmstadt Link to publication Pre-print | ||
15:52 22mTalk | Disjointness Domains for Fine-Grained Aliasing OOPSLA Stephan Brandauer Uppsala University, Dave Clarke Uppsala University, Sweden and KU Leuven, Belgium, Tobias Wrigstad Uppsala University Link to publication File Attached | ||
16:15 22mTalk | The Chemical Approach to Typestate-Oriented Programming OOPSLA DOI | ||
16:37 22mTalk | Customizable Gradual Polymorphic Effects for Scala OOPSLA DOI |