Perfect Class Hashing and Numbering for Object-Oriented Implementation - LIRMM - Laboratoire d’Informatique, de Robotique et de Microélectronique de Montpellier Access content directly
Journal Articles Software: Practice and Experience Year : 2011

Perfect Class Hashing and Numbering for Object-Oriented Implementation


Late binding and subtyping create run-time overhead for object-oriented languages, especially in the context of both multiple inheritance and dynamic loading, for instance for JAVA interfaces. In a previous paper, we proposed a novel approach based on perfect hashing and truly constant-time hashtables for implementing subtype testing and method invocation in a dynamic loading setting. In this first study, we based our efficiency assessment on Driesen's abstract computational model for the time aspect, and on large-scale benchmarks for the space aspect. The conclusions were that the technique was promising but required further research in order to assess its scalability. This article presents some new results on perfect class hashing that enhance its interest. We propose and test both new hashing functions and an inverse problem which amounts to selecting the best class identifiers in order to minimize the overall hashtable size. This optimizing approach is proven to be optimal for single inheritance hierarchies. Experiments within an extended testbed with random class loading and under cautious assumptions about what should be a sensible class loading order show that perfect class hashing scales up gracefully, especially on JAVA-like multiple-subtyping hierarchies. Furthermore, perfect class hashing is implemented in the PRM compiler testbed, and compared here with the coloring technique, which amounts to maintaining the single inheritance implementation in multiple inheritance. The overall conclusion is that the approach is efficient from both time and space standpoints with the bit-wise and hashing function. In contrast, the poor time efficiency of modulus hashing function on most processors is confirmed.

Dates and versions

lirmm-00515350 , version 1 (06-09-2010)



Roland Ducournau, Floréal Morandat. Perfect Class Hashing and Numbering for Object-Oriented Implementation. Software: Practice and Experience, 2011, 41 (6), pp.661-694. ⟨10.1002/spe.1024⟩. ⟨lirmm-00515350⟩
100 View
0 Download



Gmail Mastodon Facebook X LinkedIn More