The wide practice of object-oriented programming in current software construction is evident. Despite extensive studies on typing programming objects, it is still undeniably a challenging research task to design a type system for object-oriented programming that is both effective in capturing program errors and unobtrusive to program construction. In this paper, we present a novel approach to typing objects that makes use of a recently invented notion of guarded dependent datatypes. We show that our approach can address various difficult issues (e.g., handling self type, typing binary methods, etc.) in a simple and natural type-theoretical manner, remedying the deficiencies in many existing approaches to typing objects.
Zhenyu QianBernd Krieg-Brückner
Suad AlagićRajshekhar SunderramanAshvin Radiya
Kathleen FisherJohn C. Mitchell
Peter S. CanningWilliam R. CookWalter L. HillWalter Olthoff