Write a Blog >>
Fri 23 Jun 2017 11:20 - 11:45 at Auditorium, Vertex Building - Types and Effects Chair(s): Philipp Haller

Type checkers of object-oriented languages use class tables to coordinate type checking of subexpressions. This couples the type checking of subexpressions and prevents compositional and incremental type checking. Recent work achieved incremental type checking for PCF by removing contexts through co-contextual typing rules. However, that work does not cover key features of Featherweight Java: Subtype polymorphism, nominal typing, and implementation inheritance. This paper fills this gap with a formulation of co-contextual typing rules for Featherweight Java that replace the class table, which in Featherweight Java encode information about subtype polymorphism, nominal typing, and implementation inheritance, with a dual concept of class table requirements and class table operations with dual operations on class table requirements. We prove the equivalence of typing rules of contextual and co-contextual Featherweight Java. Also, we provide an incremental type-checker and a description of the optimizations we employed to the type-checker implementation for co-contextual FJ, in order to have an efficient incrementalization.