JOURNAL ARTICLE

Unifying object-oriented programming with typed functional programming

Abstract

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.

Keywords:
Computer science Programming language Object-oriented programming Type safety Programming paradigm Task (project management) Simple (philosophy) Typing Software engineering Systems engineering

Metrics

2
Cited By
0.74
FWCI (Field Weighted Citation Impact)
24
Refs
0.75
Citation Normalized Percentile
Is in top 1%
Is in top 10%

Topics

Logic, programming, and type systems
Physical Sciences →  Computer Science →  Artificial Intelligence
Software Engineering Research
Physical Sciences →  Computer Science →  Information Systems
Advanced Software Engineering Methodologies
Physical Sciences →  Computer Science →  Artificial Intelligence

Related Documents

BOOK-CHAPTER

Typed object-oriented functional programming with late binding

Zhenyu QianBernd Krieg-Brückner

Lecture notes in computer science Year: 1996 Pages: 48-72
JOURNAL ARTICLE

Unifying functional and object-oriented programming with Scala

Martin OderskyTiark Rompf

Journal:   Communications of the ACM Year: 2014 Vol: 57 (4)Pages: 76-86
BOOK-CHAPTER

Notes on typed object-oriented programming

Kathleen FisherJohn C. Mitchell

Lecture notes in computer science Year: 1994 Pages: 844-885
© 2026 ScienceGate Book Chapters — All rights reserved.