ECOOP '00 Proceedings of the Workshops, Panels, and Posters on Object-Oriented Technology
ECOOP '02 Proceedings of the Workshops and Posters on Object-Oriented Technology
Perfect hashing as an almost perfect subtype test
ACM Transactions on Programming Languages and Systems (TOPLAS)
Refactorings of design defects using relational concept analysis
ICFCA'08 Proceedings of the 6th international conference on Formal concept analysis
Using FCA to suggest refactorings to correct design defects
CLA'06 Proceedings of the 4th international conference on Concept lattices and their applications
Implementing statically typed object-oriented programming languages
ACM Computing Surveys (CSUR)
Hi-index | 0.00 |
We investigate the separation between types and classes by putting to use a special feature of Java regarding classes, interfaces and inheritance. We propose an original method, which, from a single inheritance class hierarchy, extracts a multiple inheritance interface hierarchy, which contains all the types of the original hierarchy, each class being linked to the interface representing its type. In the resulting structure, interfaces are well organized, and follow a natural multiple specialization, which would not have been possible using only the single inheritance, which comes with Java. Our method is based on the use of a Galois lattice, which, as previous works have shown, is a reference for the elaboration of hierarchies. We introduce and justify the need for a new algorithm that efficiently builds an essential part of the Galois lattice.