Standard

A Co-contextual Type Checker for Featherweight Java. / Kuci, Edlira; Erdweg, Sebastian; Bračevac, Oliver; Bejleri, Andi; Mezini, Mira.

31st European Conference on Object-Oriented Programming (ECOOP 2017). ed. / Peter Müller. 2017. p. 1-26 (Leibniz International Proceedings in Informatics (LIPIcs); Vol. 74).

Research output: Scientific - peer-reviewConference contribution

Harvard

Kuci, E, Erdweg, S, Bračevac, O, Bejleri, A & Mezini, M 2017, A Co-contextual Type Checker for Featherweight Java. in P Müller (ed.), 31st European Conference on Object-Oriented Programming (ECOOP 2017). Leibniz International Proceedings in Informatics (LIPIcs), vol. 74, pp. 1-26, ECOOP 2017, Barcelona, Spain, 18/06/17. DOI: 10.4230/LIPIcs.ECOOP.2017.18

APA

Kuci, E., Erdweg, S., Bračevac, O., Bejleri, A., & Mezini, M. (2017). A Co-contextual Type Checker for Featherweight Java. In P. Müller (Ed.), 31st European Conference on Object-Oriented Programming (ECOOP 2017) (pp. 1-26). (Leibniz International Proceedings in Informatics (LIPIcs); Vol. 74). DOI: 10.4230/LIPIcs.ECOOP.2017.18

Vancouver

Kuci E, Erdweg S, Bračevac O, Bejleri A, Mezini M. A Co-contextual Type Checker for Featherweight Java. In Müller P, editor, 31st European Conference on Object-Oriented Programming (ECOOP 2017). 2017. p. 1-26. (Leibniz International Proceedings in Informatics (LIPIcs)). Available from, DOI: 10.4230/LIPIcs.ECOOP.2017.18

Author

Kuci, Edlira ; Erdweg, Sebastian ; Bračevac, Oliver ; Bejleri, Andi ; Mezini, Mira. / A Co-contextual Type Checker for Featherweight Java. 31st European Conference on Object-Oriented Programming (ECOOP 2017). editor / Peter Müller. 2017. pp. 1-26 (Leibniz International Proceedings in Informatics (LIPIcs)).

BibTeX

@inbook{8d9bbccf7be448bc975817ba107a45f6,
title = "A Co-contextual Type Checker for Featherweight Java",
abstract = "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.",
keywords = "type checking, co-contextual, constraints, class table, Featherweight Java",
author = "Edlira Kuci and Sebastian Erdweg and Oliver Bračevac and Andi Bejleri and Mira Mezini",
year = "2017",
doi = "10.4230/LIPIcs.ECOOP.2017.18",
series = "Leibniz International Proceedings in Informatics (LIPIcs)",
publisher = "Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik",
pages = "1--26",
editor = "Peter Müller",
booktitle = "31st European Conference on Object-Oriented Programming (ECOOP 2017)",

}

RIS

TY - CHAP

T1 - A Co-contextual Type Checker for Featherweight Java

AU - Kuci,Edlira

AU - Erdweg,Sebastian

AU - Bračevac,Oliver

AU - Bejleri,Andi

AU - Mezini,Mira

PY - 2017

Y1 - 2017

N2 - 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.

AB - 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.

KW - type checking

KW - co-contextual

KW - constraints

KW - class table

KW - Featherweight Java

UR - http://resolver.tudelft.nl/uuid:8d9bbccf-7be4-48bc-9758-17ba107a45f6

U2 - 10.4230/LIPIcs.ECOOP.2017.18

DO - 10.4230/LIPIcs.ECOOP.2017.18

M3 - Conference contribution

T3 - Leibniz International Proceedings in Informatics (LIPIcs)

SP - 1

EP - 26

BT - 31st European Conference on Object-Oriented Programming (ECOOP 2017)

ER -

ID: 32869879