Subclassing errors, OOP, and practically checkable rules to prevent them

Authors
Kiselyov, Oleg
Advisors
Second Readers
Subjects
object-oriented programming
subtyping
subclassing
implementation inheritance
C++
functional programming
Date of Issue
2003-01-28
Date
Publisher
arXiv
Language
Abstract
This paper considers an example of Object-Oriented Programming (OOP) leading to subtle errors that break separation of interface and implementations. A comprehensive principle that guards against such errors is undecidable. The paper introduces a set of mechanically verifiable rules that prevent these insidious problems. Although the rules seem restrictive, they are powerful and expressive, as we show on several familiar examples. The rules contradict both the spirit and the letter of the OOP. The present examples as well as available theoretical and experimental results pose a question if OOP is conducive to software development at all.
Type
Article
Description
Series/Report No
Department
Organization
Identifiers
NPS Report Number
Sponsors
Funding
Format
Citation
Distribution Statement
Rights
Collections