On the use of type predicates in object-oriented software: The case of smalltalk
MetadataShow full item record
Object-orientation relies on polymorphism to express behavioral variants. As opposed to traditional procedural design, explicit type-based conditionals should be avoided. This message is conveyed in introductory material on object orientation, as well as in object-oriented reengineering patterns. Is this principle followed in practice? In other words, are type predicates actually used in object-oriented software, and if so, to which extent? Answering these questions will assist practitioners and researchers with providing information about the state of the practice, and informing the active research program of retrofitting type systems, clarifying whether complex flow-sensitive typing approaches are necessary. Other areas, such as refactoring and teaching object orientation, can also benefit from empirical evidence on the matter. We report on a study of the use of type predicates in a large base of over 4 million lines of Smalltalk code. Our study shows that type predicates are in fact widely used to do explicit type dispatch, suggesting that flow-sensitive typing approaches are necessary for a type system retrofitted for a dynamic object-oriented language.
Showing items related by title, author, creator and subject.
Helmer, S (Idea Group, 2005)This chapter gives an overview of indexing techniques suitable for fuzzy object-oriented databases (FOODBSs). First, typical query patterns used in FOODBSs are identified, namely, single-valued, set-valued, navigational, ...
Bianco, M; Sillitti, A; Succi, G (ACM Press, 2008)Data mining on software products and process metrics is hard. The relations between them are different and may vary. We present a data manipulation language called System Query Language, which partially overcomes the ...
Robbes R; Röthlisberger D; Tanter É (Kluwer Academic Publishers, 2015)As software evolves, data types have to be extended, possibly with new data variants or new operations. Object-oriented design is well-known to support data extensions well. In fact, most popular books showcase data ...