Bidirectional object layout for separate compilation
- 17 October 1995
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 30 (10) , 124-139
- https://doi.org/10.1145/217839.217849
Abstract
Existing schemes for object layout and dispatch in the presence of multiple inheritance and separate compilation waste space and are slower than systems with single inheritance. This paper describes the bidirectional object layout , a new scheme for object layout that produces smaller objects and faster method invocations than existing schemes by automatically optimizing particular uses of multiple inheritance. The bidirectional object layout is used for the programming language Theta, and is applicable to languages like C++. This paper also demonstrates how to efficiently implement method dispatch when method signatures are allowed to change in subclasses. Most current statically compiled languages require identical signatures for efficiency.This publication has 9 references indexed in Scilit:
- Subtypes vs. where clausesPublished by Association for Computing Machinery (ACM) ,1995
- Selector table indexing & sparse arraysPublished by Association for Computing Machinery (ACM) ,1993
- The 007 BenchmarkPublished by Association for Computing Machinery (ACM) ,1993
- Optimizing method search with lookup caches and incremental coloringPublished by Association for Computing Machinery (ACM) ,1992
- Two-directional record layout for multiple inheritanceACM SIGPLAN Notices, 1990
- An efficient implementation of SELF a dynamically-typed object-oriented language based on prototypesPublished by Association for Computing Machinery (ACM) ,1989
- A fast method dispatcher for compiled languages with multiple inheritanceACM SIGPLAN Notices, 1989
- Fast dispatch mechanisms for stock hardwareACM SIGPLAN Notices, 1988
- A semantics of multiple inheritanceLecture Notes in Computer Science, 1984