MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Bidirectional Object Layout for Separate Compilation (1995) [19 citations — 2 self]

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.

Citations

467 A semantics of multiple inheritance – Cardelli - 1984
279 The Annotated C ++ Reference Manual – Ellis, Stroustrop - 1990
248 The OO7 benchmark – Carey, Witt, et al. - 1993
193 and Bjarne Stroustrup. The Annotated C++ Reference Manual – Ellis - 1990
145 An efficient implementation of self - a dynamically-typed object-oriented language based on prototypes – Chambers, Ungar, et al. - 1989
118 The Design and Implementation of the SELF Compiler, an Optimizing Compiler for Object-Oriented Programming Languages – Chambers - 1992
70 Subtypes vs. where clauses: Constraining parametric polymorphism – Day, Gruber, et al. - 1995
62 A Fast Method Dispatcher for Compiled Languages with Multiple Inheritance – Dixon, McKee, et al. - 1989
53 Multiple Inheritance for C – Stroustrup - 1987
42 Optimizing Method Search with Lookup Caches and Incremental Coloring – Andre, Royer - 1992
28 Selector table indexing and sparse arrays – Driesen - 1993
28 Two-Directional Record Layout for Multiple Inheritance – Pugh, Weddell - 1990
28 Fast Dispatch Mechanisms for Stock Hardware – Rose - 1988
28 InterViews: A C++ graphical interface toolkit – LINTON, CALDER, et al. - 1988
10 Theta reference manual. Programming Methodology Group Memo 88 – Liskov, Curtis, et al. - 1994
9 Labbase: a database to manage laboratory data in a large-scale genome-mapping project – Rozen, Stein, et al. - 1995
7 Fast object operations in a persistent programming system – Myers - 1994
1 InterViews: AC++ Graphical Interface Toolkit – Linton, Calder, et al. - 1988