A Co-contextual Type Checker for Featherweight Java

Edlira Kuci, Sebastian Erdweg, Oliver Bračevac, Andi Bejleri, Mira Mezini

Research output: Chapter in Book/Conference proceedings/Edited volumeConference contributionScientificpeer-review

7 Citations (Scopus)
213 Downloads (Pure)


This paper addresses compositional and incremental type checking for object-oriented programming languages. Recent work achieved incremental type checking for structurally typed functional languages through co-contextual typing rules, a constraint-based formulation that removes any context dependency for expression typings. However, that work does not cover key features of object-oriented languages: Subtype polymorphism, nominal typing, and implementation inheritance. Type checkers encode these features in the form of class tables, an additional form of typing context inhibiting incrementalization. In the present work, we demonstrate that an appropriate co-contextual notion to class tables exists, paving the way to efficient incremental type checkers for object-oriented languages. This yields a novel formulation of Igarashi et al.'s Featherweight Java (FJ) type system, where we replace class tables by the dual concept of class table requirements and class table operations by dual operations on class table requirements. We prove the equivalence of FJ's type system and our co-contextual formulation. Based on our formulation, we implemented an incremental FJ type checker and compared its performance against javac on a number of realistic example programs.
Original languageEnglish
Title of host publication31st European Conference on Object-Oriented Programming (ECOOP 2017)
EditorsPeter Müller
Number of pages26
ISBN (Electronic)978-3-95977-035-4
Publication statusPublished - 2017
EventECOOP 2017: 31st European Conference on Object-Oriented Programming - Barcelona, Spain
Duration: 18 Jun 201723 Jun 2017
Conference number: 31

Publication series

NameLeibniz International Proceedings in Informatics (LIPIcs)
PublisherSchloss Dagstuhl--Leibniz-Zentrum fuer Informatik
ISSN (Electronic)1868-8969


ConferenceECOOP 2017
Internet address


  • type checking
  • co-contextual
  • constraints
  • class table
  • Featherweight Java


Dive into the research topics of 'A Co-contextual Type Checker for Featherweight Java'. Together they form a unique fingerprint.

Cite this