Affiliation:
1. LIRMM--CNRS and Université Montpellier II, France
Abstract
Subtype tests are an important issue in the implementation of object-oriented programming languages. Many techniques have been proposed, but none of them perfectly fulfills the five requirements that we have identified: constant-time, linear-space, multiple inheritance, dynamic loading and inlining. In this article, we propose a subtyping test implementation that involves a combination of usual hashtables and Cohen's display, which is a well-known technique for single inheritance hierarchies. This novel approach is based on
perfect hashing
, that is, an optimized and truly constant-time variant of hashing that applies to
immutable
hashtables. We show that the resulting technique closely meets all five requirements. Furthermore, in the framework of Java-like languages—characterized by single inheritance of classes and multiple subtyping of interfaces—perfect hashing also applies to method invocation when the receiver is typed by an interface. The proposed technique is compared to some alternatives, including the proposal by Palacz and Vitek [2003]. Time-efficiency is assessed at the cycle level in the framework of Driesen's pseudo-code and the linear-space criterion is validated by statistical simulation on benchmarks consisting of large-scale class hierarchies.
Funder
Conseil Régional Languedoc-Roussillon
Publisher
Association for Computing Machinery (ACM)
Cited by
11 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. A cost-effective adaptive random testing algorithm for object-oriented software testing;Journal of Intelligent & Fuzzy Systems;2021-10-14
2. An Approach to Determine the Optimal k-Value of K-means Clustering in Adaptive Random Testing;2020 IEEE 20th International Conference on Software Quality, Reliability and Security (QRS);2020-12
3. Efficient fail-fast dynamic subtype checking;Proceedings of the 11th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages - VMIL 2019;2019
4. Efficient compilation strategy for object-oriented languages under the closed-world assumption;Software: Practice and Experience;2012-11-26
5. Open and efficient type switch for C++;ACM SIGPLAN Notices;2012-11-15